Déjà, PHP 7.4 toque à la porte, et il arrive les bras chargés de fonctionnalités et de modernisations. Que ce soit les FFI, le support du typage pour les propriétés, l’abandon des nombres real, la covariance, et même la modernisation de strip_tags, array_merge sans argument, et l’imbrication d’opérateurs ternaires : ouf, il va falloir se retrousser les manches. Durant la session, nous passerons en revue les nouvelles fonctionnalités, les incompatibilités, et nous verrons comment préparer son code dès maintenant.
3. QUI PARLE?
• Damien Seguy
• CTO @exakat
• Analyse statique PHP
• Maison de retraite à éléphpants
• Record mondial du nombre
d'antennes AFUP visitées
11. PLUS DE REAL
<?php
$string = '1.2';
$real = (real) $string;
$float = (float) $string;
?>
• Uniquement du float
• is_real() et (real)
PHP Deprecated: The (real) cast is deprecated, use (float) instead
12. ARRAY_KEY_EXISTS()
Deprecated: array_key_exists(): Using array_key_exists() on objects
is deprecated. Use isset() or property_exists() instead
<?php
$objet = new stdclass;
$objet->p = 1;
var_dump(array_key_exists('p', $objet));
?>
• array_key_exists() a été accéléré
24. CONTRAVARIANT
COVARIANT
1.Toutes les définitions le même fichier
2.L'autoload est obligatoire
• Moins de vérifications avec le lint
PHP Fatal error: Could not check compatibility between
UserFactory::make(object $arg): User and Factory::make(User $arg):
object, because class User is not available
39. • ext/wddx se retire
• ext/hash s'impose
• PEAR est définitivement mort
• money_format() se retire
• Les classes sans parent ne compile plus parent::
41. PERFORMANCES
• Gain de performances
• 1 à 5 % par rapport à PHP 7.3
• Potentiel de gain avec ext/FFI
• Potentiel de pertes avec les propriétés typées
• Ne pas les utiliser est plus lent!!
42. AIDE À LA MIGRATION
• Exakat
• Rapports 7.x
• Suggestions
• PHPCompatibility
• PHP CS