PHP Digest n ° 171 (1 - 13 janvier 2020)


Nouvelle sélection avec des liens vers des nouvelles et des documents. Dans la version: 4 nouveaux RFC de PHP Internals et des demandes de pool intéressantes en PHP 8, une partie d'outils utiles, des podcasts, des flux et bien plus encore.

Bonne lecture!



Internes PHP


  • [RFC] Variable Syntax Tweaks - Un certain nombre d'incohérences dans la syntaxe des variables RFC Uniform Variable Syntax ont été corrigées dans PHP 7. Il est proposé de corriger certaines omissions de déréférencement en PHP 8.
  • [RFC] Type de retour statique - Le static dans le contexte d'une déclaration de type signifie une liaison statique tardive . Il est proposé de permettre son utilisation comme type de méthode de retour. Pratique dans les interfaces fluides ou les constructeurs statiques.
    Texte masqué
     class Test { public function doWhatever(): static { // Do whatever. return $this; } } 
    Pour les propriétés de classe et les paramètres de méthode, cela n'a aucun sens et ne fonctionnera pas.
  • [RFC] Allow :: class on objects - En PHP 8, il est proposé de permettre d'obtenir le nom complet de la classe à partir de l' $object::class , similaire à la façon dont il fonctionne maintenant Foo\Bar::class .
  • [RFC] Instruction «use global functions / consts» - Si une fonction ou une constante est utilisée sans préfixe, alors PHP essaiera de les trouver d'abord dans l'espace de noms courant puis dans le global. L'auteur suggère que l'ajout de directives use global functions; et use global consts; , ce qui forcera l'interpréteur à rechercher des fonctions et des constantes sans préfixe dans l'espace global par défaut.
  • [RFC] Cartes faibles - Offre acceptée et WeakMaps seront disponibles en PHP 8.

    Plusieurs modifications sont disponibles en tant que demandes de pool:
  • [PR] Déprécier le paramètre requis après facultatif - Cet avertissement concernant l'utilisation du paramètre requis après l'implémentation de la signature de fonction facultative:
     function test(FooBar $param = null, $param2) 

    Cela peut avoir du sens auparavant, mais avec les types nullables, vous pouvez écrire function test(?FooBar $param, $param2) .
  • [PR] Vérifier les signatures de méthodes abstraites provenant de traits - Les signatures de méthodes abstraites de traits ne sont pas validées pour la conformité de l'implémentation. Autrement dit, ce code fonctionne maintenant sans erreurs:
    Texte masqué
     trait T { abstract function neededByTheTrait(int $a, string $b); } class C { use T; function neededByTheTrait(array $a, object $b) {} } 
    La demande de pool corrige ce comportement.
  • [PR] Assurer des signatures correctes pour les méthodes magiques PHP - Et dans ce PR, la vérification des signatures des méthodes magiques est implémentée. Pour le moment, ce n'est que pour __toString() et __clone() , mais cela, par exemple, fonctionne sans erreur:
    Texte masqué
     class Foo { function __get(int $name) {} } (new Foo)->{42}; 

Les outils



Symfony



Laravel



Zend / laminas



CMS



Matériel d'apprentissage




Audio / vidéo



Merci de votre attention!

Si vous constatez une erreur ou une inexactitude - veuillez m'en informer en PM .
Questions et suggestions écrivez à mail ou twitter .

Plus de nouvelles et de commentaires sur le canal PHP Digest Telegram.

Envoyer le lien
Liens de recherche pour tous les résumés
← Version précédente: PHP Digest No. 170

Source: https://habr.com/ru/post/fr483684/


All Articles