É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)

Python « moderne » : comment coder en Python en 2020 ?

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
110
Mois de parution
septembre 2020
Spécialité(s)
Résumé

Le langage Python évolue progressivement, version après version et de nouvelles fonctionnalités voient le jour et changent la manière dont le langage peut être appréhendé.Au-delà de la curiosité que ces changements provoquent, ils sont des révolutions silencieuses ayant un impact réel sur le style de codage.

Les outils pour les développeurs Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
110
Mois de parution
septembre 2020
Spécialité(s)
Résumé

Pouvoir déboguer son code en toutes circonstances, le tester à chaque amélioration, suivre son utilisation et son bon fonctionnement et être capable d’en optimiser les points faibles.Ce sont des enjeux importants que tous les développeurs connaissent. Voici les outils pour y parvenir.

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.

De la scytale au bit quantique : l’avenir de la cryptographie

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

Imaginez un monde où nos données seraient aussi insaisissables que le célèbre chat de Schrödinger : à la fois sécurisées et non sécurisées jusqu'à ce qu'un cryptographe quantique décide d’y jeter un œil. Cet article nous emmène dans les méandres de la cryptographie quantique, où la physique quantique n'est pas seulement une affaire de laboratoires, mais la clé d'un futur numérique très sécurisé. Entre principes quantiques mystérieux, défis techniques, et applications pratiques, nous allons découvrir comment cette technologie s'apprête à encoder nos données dans une dimension où même les meilleurs cryptographes n’y pourraient rien faire.

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