Services webmasters
Partenaires
Jeux concours gratuits
 
Une extension simple
<<<
Compiler le module Développer PHP 4.0
>>>

8.5 Créer une extension
8 Développer PHP 4.0
 Manuel PHP

Une extension simple
->Compiler le module

8.5.2 Compiler le module

Il y a simplement deux méthodes pour compiler les modules :

  • Utiliser le mécanisme de "make", présent dans le dossier ext , qui permet aussi de compiler les modules chargeables dynamiquement.
  • Compiler les sources manuellement.
La première méthode doit toujours être privilégiées, car, depuis PHP 4.0, un mécanisme standardisé et sophistiqué de compilation a été mis en place. Le fait qu'il soit sophistiqué a des inconvénients, malheureusement : il est difficile à comprendre au premier abord. Nous allons fournir une introduction détaillée de ce processus utlérieurement, mais commençons par regarder le fonctionnement avec les fichiers par défaut.

La seconde méthode est bonne pour ceux qui, pour une raison ou une autre, n'ont pas les sources complètes de PHP sous la main, ou n'ont pas accès à tous les fichiers, ou qui aiment simplemetn pianoter sur leur clavier. Ces cas sont extrêmement rare, mais afin d'être exhaustif, nous allons aussi décrire cette méthode.

Pour compiler le code d'exemple en utilisant le mécanisme standard, copiez le dossier et tous les sous dossier dans le dossier ext de vos sources PHP. Puis exécutez le script buildconf , qui va créer une version mise à jour du script configure , avec les options appropriées pour votre extension. Par défaut, les nouvelles extensions sont désactivées. Comme cela, vous ne démolirez pas votre script de configuration.

Après avoir exécuté buildconf , configure --help montre les modules additionels :


--enable-array_experiments BOOK: Enables array experiments
--enable-call_userland BOOK: Enables userland module
--enable-cross_conversion BOOK: Enables cross-conversion module
--enable-first_module BOOK: Enables first module
--enable-infoprint BOOK: Enables infoprint module
--enable-reference_test BOOK: Enables reference test module
--enable-resource_test BOOK: Enables resource test module
--enable-variable_creation BOOK: Enables variable-creation module

Le module présenté auparavant Une extension simple peut être activé avec --enable-first_module ou --enable-first_module=yes .

Pour compiler vos modules manuellement, vous avez besoin des commandes suivantes :
Action Commande
Compiler cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Lier cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>
La commande pour compiler le module indique simplement au compilateur de générer du code indépendant des positions ( -fpic ne doit pas être omis), et de plus, il définit la constante COMPILE_DL qui indique au code du module qu'il est compilé comme module dynamiquement chargeable (le module de test commence par vérifier cela en premier; nous en reparlerons plus tard). Après ces options, il spécifie un certain nombre de chemin d'inclusion qui devraient être utilisés comme liste minimale pour compiler le tout.

Note: Tous les chemins d'inclusion dans l'exemple sont relatifs au dossier ext . Si vous compilez depuis un autre dossier, changez les chemins de manière appropriée. Les chemins obligatoires sont le dossier PHP, le dossier Zend, et (si nécessaire) le dossier de votre module.

La commande de liaison est aussi une commande standard de liaison du module comme module dynamique.

Vous pouvez inclure des options d'optimisation dans la commande de compilation, même si nous les avons omis dans cet exemple (mais certaines sont inclues dans le fichier makefile, décrit un peu plus haut).

Note: Compiler et lier manuellement comme module statique de PHP implique une liste d'insctructions très longue, et non discutée ici (ce n'est pas très efficace de taper toutes ces commandes).

<< Compiler le module >>
Une extension simple Créer une extension Développer PHP 4.0
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -