Bonjour,
je suis en train de developper un generateur d'extension php en python à partir d'un fichier gabarit XML.
j'aimerais simplement savoir si je suis sur la bonne voie pour créer mon extension, la question ne porte pas sur le generateur python mais sur les fichiers d'extensions php que je genere :
il y en a 2 que je genere :

- module.c
- php_module.h

ma question porte d'abord sur le fichier php_module.h, je voudrais savoir si il est correctement généré (honetement j'ai du mal a comprendre les fonctions de l'API ZEND) je me suis basé sur different tutos et jai aussi regardé les differentes extensions deja intégré à PHP, voici mon code généré :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
#ifndef FREEAGE_MODULE_MODULE_INCLUDED
#define FREEAGE_MODULE_MODULE_INCLUDED
 
#ifdef __cplusplus
extern "C" {
#endif
 
#define PHP_MODULE_EXTNAME	"module"
#define PHP_MODULE_EXTVER	"1.0"
 
#ifdef ZTS
#include "TSRM.h"
#endif
 
#include "net_types.h"
#include <stdarg.h>
 
/* Registration module inputs.	*/
extern zend_module_entry module_module_entry;
#define phpext_module_ptr &module_module_entry
 
/* Declaration of functions to create.	*/
PHP_MINIT_FUNCTION(module);
PHP_MINFO_FUNCTION(module);
PHP_MSHUTDOWN_FUNCTION(module);
 
PHP_FUNCTION(test_module);
PHP_FUNCTION(test_module_result);
PHP_FUNCTION(test_sql);
PHP_FUNCTION(test_sql_result);
 
ZEND_BEGIN_MODULE_GLOBALS(module)
 
/* test_module params declaration.	*/
typedef struct
{
	net_int_t arg;	/*< An argument.	*/
}
test_module_params;
 
/* test_module result declaration.	*/
typedef struct
{
	net_int_t ret;	/*< A result.	*/
}
test_module_result;
 
/* test_sql params declaration.	*/
typedef struct
{
	net_char_t name [32];	/*< The test argument.	*/
}
test_sql_params;
 
/* test_sql result declaration.	*/
typedef struct
{
	net_int_t intval;	/*< An integer.	*/
	net_float_t floatval;	/*< A float.	*/
	net_char_t strval [32];	/*< A string.	*/
}
test_sql_result;
 
ZEND_END_MODULE_GLOBALS(module)
 
#ifdef ZTS
#define MODULE_G(v) TSRMG(module_globals_id, zend_module_globals *, v)
#else
#define MODULE_G(v) (module_globals.v)
#endif
 
ZEND_EXTERN_MODULE_GLOBALS(module)
 
#ifdef __cplusplus
}
#endif
 
#endif /* FREEAGE_MODULE_MODULE_INCLUDED */
avant de m'attaquer a la generation du fichier d'implementation module.c, ce fichier deja est t'il bon ? y a t'il des erreurs ?

j'aimerais aussi savoir quel type en PHP remplace ce type de structure en C :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct
{
	net_int_t arg;	/*< An argument.	*/
}
test_module_params;
ou tout autre structure d'ailleurs ! sachant que les types en PHP sont :

Boolean, Long, Double, String, Resources, Array, Object.

merci d'avance.