Créer une extension PHP en C
Développer en PHP reste quelque chose de banal, on crée des fonctions, des classes, et on rempli nos frameworks de méthodes en tout genre... et ça devient vite lourd, très lourd parfois ! Dans bien des cas, nous pouvons alléger et accélerer les traitements de nos projets PHP en développant non plus des fonctions et classes en PHP, mais en C.
Le principe reste plus complexe, puisque la plupart des développeurs ont oublié que le langage C est un langage d'excelence, et que PHP lui même est codé en C. Pourtant, aujourd'hui, les API PHP et Zend permettent un développement assez rapide d'une extension. Nous allons voir comment s'y prendre.
Il vous faudra un peu de persévérence au début. Si vous avez peu développé en C, ou que c'est votre première, il va d'abord falloir que vous passiez par des cours... car je vais entrer directement dans le vif du sujet. Sachez tout de même que le minimum requis est de savoir ce qu'est une macro et un pointeur, et que vous savez déclarer une variable et une fonction. Le reste va découler de lui même puisque tout a été pensé pour que vous ne vous penchiez que sur ce qui vous interesse: le fonctionnement.
Je vais donc présenter 2 parties:
- développer des fonctions
- développer des classes
En effet, les extensions sont d'abord pensées pour créer des fonctions, la création de classes est un peu plus compliqué. Mais sitôt que vous aurez passé le cap de l'arrachage de cheveux, je vous assure que vous allez apprécier de dévelloper des choses en C pour vos projets PHP tellement les résultats en terme de performances sont alléchantes.
Prêt pour une nouvelle expérience ?
Ce qu'il faut avoir
D'abords, il vous faut les sources de PHP. Si vous êtes sur une distribution Linux, il vous suffit d'avoir le paquet qui correspond à "php-dev" ou "php-devel". Nous traiterons ici de PHP 5 et seulement PHP 5!
Il vous faudra aussi un compilateur, gcc étant le plus répandu... Nous aurons aussi besoin d'un bon éditeur de texte, inutile de chercher des IDE (EDI), ce sera ouvrir une usine à gaz pour rien. Pour ma part, j'utilise gedit sur Gnome ou kate sur KDE.
Je ne traiterai pas de Windows ici, je n'ai pas de licence pour cet OS, mais je pense que vous pourrez adapter facilement mes propos sur Visual C.
Préparer le terrain
Nous allons donc coder une extension qui s'appelera "tutorial". Le plus simple est de vous créer un dossier dans votre répertoire utilisateur:
mkdir -p ~/Projets/php/tutorial
cd ~/Projets/php/tutorial
#créons les 3 fichiers nécessaire au démarrage
touch config.m4
touch tutorial.c
touch tutorial.h
5 commentaire(s)


