summaryrefslogtreecommitdiff
path: root/ext/skeleton/php_skeleton.h
blob: 7d9b0bce4a19d447fa344b1e8d2d8c291c46b202 (plain)
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
/* __header_here__ */

#ifndef PHP_EXTNAME_H
#define PHP_EXTNAME_H

extern zend_module_entry extname_module_entry;
#define phpext_extname_ptr &extname_module_entry

#define PHP_EXTNAME_VERSION "0.1.0" /* Replace with version number for your extension */

#ifdef PHP_WIN32
#	define PHP_EXTNAME_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#	define PHP_EXTNAME_API __attribute__ ((visibility("default")))
#else
#	define PHP_EXTNAME_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

/* 
  	Declare any global variables you may need between the BEGIN
	and END macros here:     

ZEND_BEGIN_MODULE_GLOBALS(extname)
	zend_long  global_value;
	char *global_string;
ZEND_END_MODULE_GLOBALS(extname)
*/

/* In every utility function you add that needs to use variables 
   in php_extname_globals, call TSRMLS_FETCH(); after declaring other 
   variables used by that function, or better yet, pass in
   after the last function argument and declare your utility function
   with after the last declared argument.  Always refer to
   the globals in your function as EXTNAME_G(variable).  You are 
   encouraged to rename these macros something shorter, see
   examples in any other php module directory.
*/

#ifdef ZTS
#define EXTNAME_G(v) TSRMG(extname_globals_id, zend_extname_globals *, v)
#else
#define EXTNAME_G(v) (extname_globals.v)
#endif

#endif	/* PHP_EXTNAME_H */

/* __footer_here__ */