BT

Nouveau Early adopter ou innovator ? InfoQ a travaillé sur de nouvelles fonctionnalités pour vous. En savoir plus

PHP Haute Performance avec du Typage Statique

| par Jonathan Allen , traduit par Dridi Boukelmoune le 02 déc. 2013. Durée de lecture estimée: 2 minutes |

PHP+QB est une machine virtuelle alternative pour PHP qui revendique des gains de performance d'un ordre de grandeur supérieur. Le revers de la médaille est qu'elle nécessite que tout soit typé statiquement, et des limitations sévères sont imposées aux tableaux.

Les déclarations de types statiques sont ajoutées via une extension de la syntaxe PHPDoc. Les méthodes sont annotées avec “@engine qb” pour indiquer qu'elles devraient être exécutées sur la VM PHP+QB. Ensuite il faut annoter du type de retour, les paramètres, et les variables globales avec la syntaxe PHPDoc normale. Les variables locales sont déclarées avec @local.

Les tableaux dans PHP+QB ne sont pas comme les tableaux PHP normaux. Extrait de la documentation:

Les tableaux en PHP sont des conteneurs de données sophistiqués. On peut mettre n'importe quoi dedans. Les éléments peuvent être référencés par du texte ou un nombre. Différents éléments pourraient en fait être le même objet. Un tableau peut même se contenir lui-même. Des structures très compliquées et utiles peuvent être construites à partir de tableaux PHP. Ce pouvoir et cette flexibilité ne sont cependant pas gratuits. Le sur-coût en termes de performances et de consommation de mémoire pourrait devenir insupportablement élevé lorsque l'on travaille avec des millions d'éléments.

Les tableaux PHP+QB sont extrêmement simples en comparaison. Ils sont ce qu'on appelle communément des C-arrays. Fondamentalement, un tableau en PHP+QB n'est qu'un blob en mémoire. Ses éléments sont simplement stockés les uns après les autres. On ne peut accéder aux éléments que par un indice numérique. L'ordre d'insertion n'a pas non-plus d'importance en PHP+QB, contrairement à du PHP ordinaire. $array[0] viendra toujours avant $array[1] dans une boucle foreach en PHP+QB.

Les tableaux PHP+QB sont de taille fixe ou expansible. Les tableaux expansibles ne se réduisent pas automatiquement lorsque des éléments sont retirés, pour ça il faut appeler unset().

Le moteur supporte toute la palette de types entiers signés ou non-signés ainsi que les nombres réels 32 et 64 bits. Les chaînes de caractères sont représentées par un tableau d'entiers. Les objets ne sont pas supportés, bien que les méthodes annotées pour PHP+QB auront toujours accès aux attributs de la variable $this.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de lindustrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT