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 »
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| user@machine:~/workspace/yats$ locate ext_skel
/usr/share/php5/ext_skel
Après cela, on va lancer ce script avec --help pour connaitre les arguments possibles :
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| 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.
1
2
| user@machine:~/workspace$ cd yats
user@machine:~/workspace$ vi config.m4
|
on décommente les lignes
1
2
3
| 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 !