Générer une nouvelle extension C pour PHP
Et voilà, afin de repartir sur de bonnes bases pour le projet YATS, je vais le faire de manière propre. Comment ? Tout simplement en générant la base du code via les outils PHP, puis en le complétant avec le code de YATS.
Cet article expliquera donc la génération de la structure d’une extension C pour PHP.
Tout d’abord, on va localiser le script « ext_skel »
user@machine:~/workspace/yats$ locate ext_skel /usr/share/php5/ext_skel</pre> Après cela, on va lancer ce script avec --help pour connaitre les arguments possibles : <pre class="prettyprint lang-bsh">user@machine:~/workspace/yats$ /usr/share/php5/ext_skel --help /usr/share/php5/ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]] [--skel=dir] [--full-xml] [--no-help] --extname=module module is the name of your extension --proto=file file contains prototypes of functions to create --stubs=file generate only function stubs in file --xml generate xml documentation to be added to phpdoc-cvs --skel=dir path to the skeleton directory --full-xml generate xml documentation for a self-contained extension (not yet implemented) --no-help don't try to be nice and create comments in the code and helper functions to test if the module compiled
Pour YATS, nous allons donc générer la structure initiale :
user@machine:~/workspace$ /usr/share/php5/ext_skel --extname=yats --skel=/usr/share/php5/skeleton/ Creating directory yats Creating basic files: config.m4 config.w32 .cvsignore yats.c php_yats.h CREDITS EXPERIMENTAL tests/001.phpt yats.php [done]. To use your new extension, you will have to execute the following steps: 1. $ cd .. 2. $ vi ext/yats/config.m4 3. $ ./buildconf 4. $ ./configure --[with|enable]-yats 5. $ make 6. $ ./php -f ext/yats/yats.php 7. $ vi ext/yats/yats.c 8. $ make Repeat steps 3-6 until you are satisfied with ext/yats/config.m4 and step 6 confirms that your module is compiled into PHP. Then, start writing code and repeat the last two steps as often as necessary.
Ensuite, on édite le fichier M4.
user@machine:~/workspace$ cd yats user@machine:~/workspace$ vi config.m4
on décommente les lignes
PHP_ARG_ENABLE(yats, whether to enable yats support, Make sure that the comment is aligned: [ --enable-yats Enable yats support]
Après cela, on finalise en recommençant une compilation comme décrit dans l’article « Compiler une extension PHP ».
Pour rappel, on lance ces commandes :
- $ phpize
- $ ./configure
- $ sudo make
- $ phpize –clean
Bonne séance coding !
Ajouter un commentaire