Page 1 sur 2
php 7 G.A.
Posté : 04 déc. 2015, 19:58
par Nagol
Comme précisé dans le titre php 7.0 est sorti, c'est une version majeure qui propose théoriquement une amélioration de performance gigantesque équivalente ou meilleure à celle de HHVM (moteur php par/pour facebook).
Re: php 7 G.A.
Posté : 05 déc. 2015, 14:54
par Genova
Re: php 7 G.A.
Posté : 09 déc. 2015, 21:25
par Ascla
Pas mal tout ça !
Re: php 7 G.A.
Posté : 21 janv. 2016, 19:54
par gwen
Bonjour à tous,
La question PHP7 ou HHVM ne se tranche pas si facilement. Suivant le contexte, on pourra choisir l'un ou l'autre. J'installe du hhvm depuis deux ans maintenant et la sortie de php7 nous pousse à rejouer tous nos benchmarks (typo3, wordpress, magento....). Pour l'instant, nous n'avons évalué que notre propre site wordpress.
Voilà les résultats, assez éloignés des graphiques Zend :
http://www.nxtweb.fr/2016/01/05/php7-ve ... wordpress/
Ce qui est clair, c'est que PHP7 est une vraie bonne nouvelle !
Re: php 7 G.A.
Posté : 22 janv. 2016, 04:58
par Patriboom
J'aime bien ce nouvel opérateur:
Null coalescing operator ( ?? )
Re: php 7 G.A.
Posté : 22 janv. 2016, 10:29
par @rthur
J'aime bien ce nouvel opérateur:
Null coalescing operator ( ?? )
+1, très pratique comme opérateur

Pour ceux ne connaissant pas, voila un exemple :
Si on veut affecter une valeur par défaut à une variable si elle n'est pas définie, en PHP5 on utilise un if ou sa version raccourcie ternaire () ? :
if (isset($_GET['titre_page'])) {
$titre_page=$_GET['titre_page'];
} else {
// Titre par défaut
$titre_page="Mon super site";
}
// ou en version ternaire :
$titre_page= (isset($_GET['titre_page']) ? $_GET['titre_page'] : 'Mon super site');
Avec ce nouvel opérateur, voila ce que ça donne grâce à PHP 7 :
$titre_page= $_GET['titre_page'] ?? 'Mon super site';
Et toute la beauté c'est qu'on peut aussi les cumuler pour éviter les cascades de de if else :
// En PHP 7
$titre_page= $_POST['titre_page'] ?? $_GET['titre_page'] ?? 'Mon super site';
// Equivalent en PHP 5
if (isset($_POST['titre_page'])) {
$titre_page = $_POST['titre_page'];
} elseif (isset($_GET['titre_page'])) {
$titre_page = $_GET['titre_page'];
} else {
$titre_page = 'Mon super site';
}
Re: php 7 G.A.
Posté : 31 janv. 2016, 18:21
par Patriboom
Je viens de l'essayer avec une commande include, mais ça ne fonctionne pas.
J'espérais secrètement qu'on y pensât aussi. Ainsi, je comptais qu'un
Code : Tout sélectionner
if (file_exists($dir."/".$fichier.".php") {
include $dir."/".$fichier.".php";
} elseif (file_exists("Defaut/".$fichier.".php") {
include "Defaut/".$fichier.".php";
} elseif (file_exists($dir."/index.php") {
include $dir."/index.php";
} else {
include "Defaut/index.php";
}
puisse devenir :
Code : Tout sélectionner
include $dir."/".$fichier.".php" ?? "Defaut/".$fichier.".php" ?? $dir."/index.php" ?? "Defaut/index.php";
mais non!
Snif!
Re: php 7 G.A.
Posté : 31 janv. 2016, 23:25
par @rthur
Je viens de l'essayer avec une commande include, mais ça ne fonctionne pas.
Ah bah non, la comparaison pour ce nouvel opérateur se fait par un isset(), pas un file_exists()

Re: php 7 G.A.
Posté : 31 janv. 2016, 23:57
par Patriboom
Je sais, je sais @rthur, mais je voulais mettre « Quand tout le reste a échoué, lisez le mode d'emploi... » en application

Re: php 7 G.A.
Posté : 01 févr. 2016, 04:20
par Patriboom
Et je viens d'essayer avec un echo et ça fonctionne!!!
donnera 12
donnera 3
Re: php 7 G.A.
Posté : 09 mai 2016, 18:13
par Nagol
suis pas fan de ce genre d'opérateur, niveau lisibilité c'est pas excellent. Je suis pas fan de l'opérateur classique non plus l'écriture d'un test en une seule ligne c'est très surfait, ça s'écrit pas spécialement plus vite (et d'ailleurs je ne comprend pas nécessairement comment écrire vite du code est un avantage en php, langage qui s'écrit vite de toutes les manières).
En revanche que php7 soit plus performant c'est cool, même si à part les gros site web avec de la charge il n'y a pas tant que ça de cas ou c'est flagrant.
HTTP2 + PHP7 on arrive à des trucs sympatoches à la fin niveau perf.
Re: php 7 G.A.
Posté : 15 juin 2016, 10:35
par GeekLinux
petit retour d'expérience sur PHP7,
nous avons migré certains sites vers PHP7, coté perf rien à dire, les scripts de comparaison ou de calcul s'effectuent plus rapidement. Les nouvelles fonctionnalités on s'en sert pas trop, donc la migration n'apporte rien de plus.
Par contre en ce qui concerne la roadmap, je trouvera intéressant de rendre PHP un peu moins procédural, à savoir intégrer un queue d'événement et un système de thread que l'on pourrait lancer en parallèle.
Est-ce que ces fonctionnalités sont prévues dans les prochaines versions de PHP ?
Re: php 7 G.A.
Posté : 15 juin 2016, 11:14
par @rthur
Bonjour,
Pour le système de thread, tu peux regarder ici :
https://secure.php.net/manual/fr/intro.pthreads.php
https://github.com/krakjoe/pthreads
Cette librairie a été développée par Joe Watkins qui fait partie des principaux développeurs du noyau de PHP, donc il n'est pas exclus qu'elle soit intégrée un jour dans le core.
Re: php 7 G.A.
Posté : 15 juin 2016, 15:55
par GeekLinux
En fait, le but est virer les curl_multi et 1 script par thread pour une solution plus propre.
Merci @rthur pour l'info, la lib. pthreads a vraiment l'air bien foutu
nous allons installer pthreads sur les machines de dev pour voir ce que ça donne.
Tu t'en sers dans tes dev ?
Re: php 7 G.A.
Posté : 15 juin 2016, 17:09
par @rthur
Non, jamais utilisé cette librairie, mais je suis les évolutions de PHP (notamment
grâce à l'AFUP où on participe aux votes pour les prochaines fonctionnalités de PHP) et donc c'est comme ça que j'avais entendu parler de cette librairie.
J'avais eu besoin de faire du multithread il y a très longtemps pour un projet CLI (non-web) et j'avais utilisé pcntl à l'époque :
https://secure.php.net/manual/fr/intro.pcntl.php