PHP 8.1 llançat amb enumeracions, propietats de només lectura i fibres

PHP, el llenguatge web del costat del servidor utilitzat per a vuit de cada deu llocs web que utilitzen codi del costat del servidor, té un cicle de llançament anual i s’acaba de publicar la darrera actualització d’aquest venerable cavall de batalla del web.

El llançament de l’any passat, vegeu PHP 8.0 Afegeix metadades a les classes, va ser un llançament important. Tot i que només és una actualització de punt decimal, PHP 8.1 té moltes funcions noves, la qual cosa és una proesa notable per a un llenguatge de codi obert que, fins a la formació de la Fundació PHP la setmana passada, ha estat relativament insuficient.

La part superior de la llista de noves funcions hi ha Enumeracions (Enums) que permeten a un desenvolupador definir un tipus personalitzat que es limita a un d’un nombre discret de valors possibles. L’exemple més popular d’enumeració és el tipus booleà integrat, que és un tipus enumerat amb valors legals true i false. Enums permet als desenvolupadors definir les seves pròpies enumeracions arbitràriament robustes.

Segons les notes de publicació:

Les enumeracions apareixen en molts idiomes amb una varietat de característiques diferents. A PHP, les enumeracions són un tipus especial d’objecte. La mateixa Enum és una classe, i els seus casos possibles són tots objectes d’una sola instància d’aquesta classe. Això significa que els casos Enum són objectes vàlids i es poden utilitzar en qualsevol lloc on es pugui utilitzar un objecte, incloses les comprovacions de tipus.

El següent a la llista és el readonly modificador de propietats, que impedeix la modificació de la propietat després de la inicialització. Això significa que proporcionen una bona manera de modelar objectes de valor i objectes de transferència de dades.

La tercera característica nova, Fibres, aborda el problema que fins fa poc el codi PHP era sincrònic, que pot ser lent. La introducció de Fibres pretén eliminar la distinció entre funcions síncrones i asíncrones permetent que les funcions siguin interrompibles sense contaminar tota la pila de trucades.

phpfibersSegons les notes de publicació:

Les fibres són primitives per implementar la competència cooperativa lleugera. Són un mitjà per crear blocs de codi que es poden aturar i reprendre com a generadors, però des de qualsevol lloc de la pila. Les fibres en si mateixes no proporcionen concurrència màgicament, encara cal que hi hagi un bucle d’esdeveniments. Tanmateix, permeten que les implementacions de bloqueig i no bloqueig comparteixin la mateixa API.

Les fibres permeten desfer-se del codi boilerplate vist anteriorment Promise::then() o Corrutines basades en generador. Les biblioteques generalment construiran més abstraccions al voltant de les fibres, de manera que no cal interactuar amb elles directament.

PHP 8.1 també ofereix una sintaxi cridable de primera classe; tipus d’intersecció; i el tipus de retorn “mai” per a les funcions que no tornen mai però haurien de sortir / llançar una excepció / no finalitzar. A més, la versió introdueix el modificador final per a les constants de classe; noves funcions fsync i fdatasync; un nou array_is_list() i una notació numeral octal explícita.

Hi ha diverses millores relacionades amb el rendiment:

  • Backend JIT per a ARM64 (AArch64)
  • Memòria cau d’herència (evitar tornar a enllaçar les classes a cada sol·licitud)
  • Resolució ràpida de noms de classe (eviteu la cerca de minúscules i hash)
  • Millores de rendiment de la biblioteca de temps i de la data/ext
  • Millores dels iteradors del sistema de fitxers SPL
  • serialitzar/desserialitzar optimitzacions
  • Algunes funcions d’optimització internes (get_declared_classes(), explode(), strtr(), strnatcmp(), dechex())
  • Millores i correccions de JIT

Com a resultat, les notes de la versió reclamen una acceleració del 23% per a la demostració de Symfony utilitzada com a referència en comparació amb PHP 8.0 i un 3,5% per a WordPress.

PHP 8.1 ja està disponible per descarregar.

phplogo

Més informació

Lloc web PHP

PHP 8.1.0 llançat!

Articles relacionats

PHP 8.0 afegeix metadades a les classes

Es va formar la Fundació PHP

PHP: essencial però poc apreciat

PHP és el millor?

Què fa PHP

Deu minuts per PHP

Deu minuts per als objectes PHP

Per estar informat sobre nous articles sobre I Programmer, registreu-vos al nostre butlletí setmanal, subscriviu-vos al canal RSS i seguiu-nos a Twitter, Facebook o Linkedin.

Bandera

pythondata

Comentaris

o envieu el vostre comentari per correu electrònic a: comments@i-programmer.info

.

Leave a Comment

Your email address will not be published. Required fields are marked *