par Didier Sampaolo, consultant technique senior en freelance.
PHP 7.0
APERÇU DES NOUVEAUTÉS
Par /Didier SAMPAOLO @dsampaolo
PERFORMANCES
Mieux que PHP 5 et même mieux que HHVM
(Facebook)
Pré-analyse syntaxique: Abstract Syntax Tree
Vrai support 64 bits
PERFORMANCES : WORDPRESS
Crédits : Zend
Source : http://www.zend.com/en/resources/php7_infographic
PERFORMANCES : FRAMEWORKS
Crédits : Zend
Source : http://www.zend.com/en/resources/php7_infographic
LARAVEL FORGE
Pour les amoureux de Laravel Forge : PHP 7.0 est
maintenant la version installée par défaut sur vos nouveaux
Serveurs.
EXCEPTIONS
Les "Fatal Error" reculent au profit d'Exceptions.
Nouvelles exceptions :
ParseException
EngineException
Erreurs converties en exception :
E_ERROR
E_RECOVERABLE_ERROR
E_PARSE
E_COMPILE_ERROR
EXT/MYSQL
La vieille API "legacy" de MySQL
disparaît
Utilisez PDO !
DÉCLARATION DE TYPES SCALAIRES
Déjà en PHP 5 : classes, interfaces, tableaux, callable
Ajout des scalaires : bool, string, int, float
TYPAGE STRICT
Le mode Coercitif (par défaut) tentera une
conversion
Le mode Strict lèvera une exception
Comment passer en mode strict ?
declare(strict_types=1);
DÉCLARATION DE TYPES : EXEMPLE
function somme(int $a, int $b) {
        return $a + $b;
        }
        $total = somme(1, 2); // 3
        $total = somme('1', 2); // coercitif: 3 ('1' est converti en int)
        $total = somme('1', 2); // strict: EXCEPTION (Uncaught TypeError)
DÉCLARATION DE TYPES : RETURN
Le type renvoyé par une fonction peut aussi être défini !
function somme(int $a, int $b) : int {
    return $a + $b;
}
CLASSES ANONYMES
Même principe que les Fonctions anonymes (closures)
function createDog() {
    return new class {
        public function bark() {
            echo "WAF !";
        }
    };
}
$medor = createDog();
$medor­>bark(); // "WAF !"
OPÉRATEUR : NULL COALESCING
??
Avant PHP 7.0
echo (isset($first_name)) ? $first_name : 'Didier';
Après PHP 7.0
echo $first_name ?? 'Didier';
OPÉRATEUR : SPACESHIP
<=>
Comparaison ternaire :
$a et $b sont égaux,
ou $a est plus grand,
ou $b est plus
grand.
echo 12 <=> 17; // ­1 car $a < $b
echo 17 <=> 12; // 1 car $a > $b
echo 12 <=> 12; // 0 car $a == $b
MERCI !
Didier SAMPAOLO
Consultant technique senior freelance
- Ma société :
- Sur Twitter :
- à voir aussi :
Ca vous a plu ?
Didcode
@dsampaolo
Didlinks

PHP 7.0 : aperçu des nouveautés

  • 1.
  • 2.
    PERFORMANCES Mieux que PHP5 et même mieux que HHVM (Facebook) Pré-analyse syntaxique: Abstract Syntax Tree Vrai support 64 bits
  • 3.
    PERFORMANCES : WORDPRESS Crédits: Zend Source : http://www.zend.com/en/resources/php7_infographic
  • 4.
    PERFORMANCES : FRAMEWORKS Crédits: Zend Source : http://www.zend.com/en/resources/php7_infographic
  • 5.
    LARAVEL FORGE Pour lesamoureux de Laravel Forge : PHP 7.0 est maintenant la version installée par défaut sur vos nouveaux Serveurs.
  • 6.
    EXCEPTIONS Les "Fatal Error"reculent au profit d'Exceptions. Nouvelles exceptions : ParseException EngineException Erreurs converties en exception : E_ERROR E_RECOVERABLE_ERROR E_PARSE E_COMPILE_ERROR
  • 7.
    EXT/MYSQL La vieille API"legacy" de MySQL disparaît Utilisez PDO !
  • 8.
    DÉCLARATION DE TYPESSCALAIRES Déjà en PHP 5 : classes, interfaces, tableaux, callable Ajout des scalaires : bool, string, int, float
  • 9.
    TYPAGE STRICT Le modeCoercitif (par défaut) tentera une conversion Le mode Strict lèvera une exception Comment passer en mode strict ? declare(strict_types=1);
  • 10.
    DÉCLARATION DE TYPES: EXEMPLE function somme(int $a, int $b) {         return $a + $b;         }         $total = somme(1, 2); // 3         $total = somme('1', 2); // coercitif: 3 ('1' est converti en int)         $total = somme('1', 2); // strict: EXCEPTION (Uncaught TypeError)
  • 11.
    DÉCLARATION DE TYPES: RETURN Le type renvoyé par une fonction peut aussi être défini ! function somme(int $a, int $b) : int {     return $a + $b; }
  • 12.
    CLASSES ANONYMES Même principeque les Fonctions anonymes (closures) function createDog() {     return new class {         public function bark() {             echo "WAF !";         }     }; } $medor = createDog(); $medor­>bark(); // "WAF !"
  • 13.
    OPÉRATEUR : NULLCOALESCING ?? Avant PHP 7.0 echo (isset($first_name)) ? $first_name : 'Didier'; Après PHP 7.0 echo $first_name ?? 'Didier';
  • 14.
    OPÉRATEUR : SPACESHIP <=> Comparaisonternaire : $a et $b sont égaux, ou $a est plus grand, ou $b est plus grand. echo 12 <=> 17; // ­1 car $a < $b echo 17 <=> 12; // 1 car $a > $b echo 12 <=> 12; // 0 car $a == $b
  • 15.
    MERCI ! Didier SAMPAOLO Consultanttechnique senior freelance - Ma société : - Sur Twitter : - à voir aussi : Ca vous a plu ? Didcode @dsampaolo Didlinks