avril
2009
Je n’ai pas l’habitude de parler de PECL, et pourtant, c’est une des forces (parmi tant d’autres) de PHP.
PHP est modulaire, c’est à dire que son code source (écrit en C) est constitué d’un noyau, la « machine virtuelle PHP », appelé ZendEngine, qui offre la possibilité d’être étendu via du code (C principalement) : on crée alors des extensions.
PHP est bourré d’extensions, ont les nomme en général « ext/[name] »
Par exemple, ext/json permet d’encoder et décoder du JSON, ext/APC est un cache d’OPCode très connu, ext/vld est très pratique pour prendre connaissance du pseudo-code que le ZendEngine exécute, ext/inclued donne des informations sur les inclusions de fichiers (et donc les dépendances objets, ext/PDO est une extension permettant de se connecter aux bases de données via une API commune …
Une extension peut rajouter à PHP des nouvelles fonctions, classes, constantes, contextes de flux, types internes (de ressource par exemple) …
Aussi, une extension peut enregistrer des options dans le php.ini, permettant ainsi d’agir sur son comportement à l’exécution.
Le manuel de PHP reprend tout celà très bien, sinon il reste toujours la reflexion
<?php Reflection::export(new ReflectionExtension('DOM'));
par exemple, donne toutes les informations de l’extension DOM (version, dépendances de compilation, fonctions/classes/constantes/paramètre de php.ini, etc…) indispensable … Vous ne connaissiez pas ? Alors sachez que PHP va encore vous étonner dans le futur
A chaque nouvelle version de PHP, Majeure ou Mineure en général, le PHP Group peut décider d’intégrer une extension dans la distribution source de PHP ou au contraire, de retirer une fonctionnalité devenue obsolète de PHP vers PECL.
Comme tout est en C, et utilise le très connu trio autoconf/automake/libtools (autotools), il est possible de fusionner une extension dans le binaire PHP (on parle de « compilation statique »), ou au contraire, de créer un module .so à charger depuis php.ini (« compilation dynamique »), et n’importe qui (suffisamment averti) pouvant créer une extension, PECL est très riche en fonctionnalités assez sensationnelles (j’écrirai un article, un jour…)
Quoiqu’il en soit aujourd’hui, un ami qui travaille chez Alter-Way (le même groupe que celui d’Anaska, dont je fais parti) a sorti ext/PDO_4D. Bravo à Stéphane Planquart donc, le ZendEngine n’est pas facile à apprivoiser au début, et c’est d’ailleurs un de mes objectifs futurs ^^
Commentaires récents
Archives
- novembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007