Écrire des extensions pour PHP

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
55
Mois de parution
juillet 2011
Spécialité(s)


Résumé
PHP est un langage de scripting de haut niveau, dynamiquement typé qui propose une sémantique objet. Il est construit au dessus de C (langage de bas niveau, statiquement typé), reposant sur des structures et des types définis dans l'API Zend Engine 2.0.PHP Possède une collection de fonctions très impressionnante qui servent à répondre à des besoins algorithmiques classique et couvrent un très large spectre fonctionnel. Cependant, il peut arriver que dans certains cas, les script exécutés soient particulièrement long car le nombre d'instructions demandées est excessivement important et qu'aucune optimisation de code, en restant dans le cadre de PHP, ne puisse améliorer les performances.Dans ce cas, écrire cet algorithme en C en gérant soi-même les ressources peut permettre de ne pas faire exploser la consommation mémoire ou de rendre le traitement plus rapide. Une autre bonne raison d'écrire des extensions C est le fait de vouloir utiliser une librairie externe.Pour cela, il faut disposer d'un bon niveau en C, et en optimisation de code, puis connaître les bases de l'interaction entre C et PHP.

1. API Zend Engine 2.0

1.1 Créer un module

Qu'est-ce qu'un module PHP ? Basiquement, il s'agit d'une collection de fonctions réunies sous une même dénomination. D'une manière plus complète, il faut aller voir la structure C qui représente un module PHP :

typedef struct _zend_module_entry zend_module_entry;

struct _zend_module_entry {

 unsigned short size;

 unsigned int zend_api;

 unsigned char zend_debug;

 unsigned char zts;

Ces quatre premiers éléments sont standards et permettent d'avoir des informations sur la manière dont le module sera traité par le cœur de PHP.

char *name;

Nom du module :

zend_function_entry *functions;

Liste de fonctions :

int (*module_startup_func)(INIT_FUNC_ARGS);

 int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);

 int (*request_startup_func)(INIT_FUNC_ARGS);

 int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);

Ceci permet de créer des hooks de manière à intervenir à des moments clés de l'exécution du script.

void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);

Permet...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Par le(s) même(s) auteur(s)

Les derniers articles Premiums

Les derniers articles Premium

Bénéficiez de statistiques de fréquentations web légères et respectueuses avec Plausible Analytics

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.

Quarkus : applications Java pour conteneurs

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.

Les listes de lecture

9 article(s) - ajoutée le 01/07/2020
Vous désirez apprendre le langage Python, mais ne savez pas trop par où commencer ? Cette liste de lecture vous permettra de faire vos premiers pas en découvrant l'écosystème de Python et en écrivant de petits scripts.
11 article(s) - ajoutée le 01/07/2020
La base de tout programme effectuant une tâche un tant soit peu complexe est un algorithme, une méthode permettant de manipuler des données pour obtenir un résultat attendu. Dans cette liste, vous pourrez découvrir quelques spécimens d'algorithmes.
10 article(s) - ajoutée le 01/07/2020
À quoi bon se targuer de posséder des pétaoctets de données si l'on est incapable d'analyser ces dernières ? Cette liste vous aidera à "faire parler" vos données.
Voir les 64 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous