skeleton.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. %HEADER%
  2. #ifdef HAVE_CONFIG_H
  3. # include "config.h"
  4. #endif
  5. #include "php.h"
  6. #include "ext/standard/info.h"
  7. #include "php_%EXTNAME%.h"
  8. #include "%EXTNAME%_arginfo.h"
  9. /* For compatibility with older PHP versions */
  10. #ifndef ZEND_PARSE_PARAMETERS_NONE
  11. #define ZEND_PARSE_PARAMETERS_NONE() \
  12. ZEND_PARSE_PARAMETERS_START(0, 0) \
  13. ZEND_PARSE_PARAMETERS_END()
  14. #endif
  15. /* {{{ void test1() */
  16. PHP_FUNCTION(test1)
  17. {
  18. ZEND_PARSE_PARAMETERS_NONE();
  19. php_printf("The extension %s is loaded and working!\r\n", "%EXTNAME%");
  20. }
  21. /* }}} */
  22. /* {{{ string test2( [ string $var ] ) */
  23. PHP_FUNCTION(test2)
  24. {
  25. char *var = "World";
  26. size_t var_len = sizeof("World") - 1;
  27. zend_string *retval;
  28. ZEND_PARSE_PARAMETERS_START(0, 1)
  29. Z_PARAM_OPTIONAL
  30. Z_PARAM_STRING(var, var_len)
  31. ZEND_PARSE_PARAMETERS_END();
  32. retval = strpprintf(0, "Hello %s", var);
  33. RETURN_STR(retval);
  34. }
  35. /* }}}*/
  36. /* {{{ PHP_RINIT_FUNCTION */
  37. PHP_RINIT_FUNCTION(%EXTNAME%)
  38. {
  39. #if defined(ZTS) && defined(COMPILE_DL_%EXTNAMECAPS%)
  40. ZEND_TSRMLS_CACHE_UPDATE();
  41. #endif
  42. return SUCCESS;
  43. }
  44. /* }}} */
  45. /* {{{ PHP_MINFO_FUNCTION */
  46. PHP_MINFO_FUNCTION(%EXTNAME%)
  47. {
  48. php_info_print_table_start();
  49. php_info_print_table_header(2, "%EXTNAME% support", "enabled");
  50. php_info_print_table_end();
  51. }
  52. /* }}} */
  53. /* {{{ %EXTNAME%_module_entry */
  54. zend_module_entry %EXTNAME%_module_entry = {
  55. STANDARD_MODULE_HEADER,
  56. "%EXTNAME%", /* Extension name */
  57. ext_functions, /* zend_function_entry */
  58. NULL, /* PHP_MINIT - Module initialization */
  59. NULL, /* PHP_MSHUTDOWN - Module shutdown */
  60. PHP_RINIT(%EXTNAME%), /* PHP_RINIT - Request initialization */
  61. NULL, /* PHP_RSHUTDOWN - Request shutdown */
  62. PHP_MINFO(%EXTNAME%), /* PHP_MINFO - Module info */
  63. PHP_%EXTNAMECAPS%_VERSION, /* Version */
  64. STANDARD_MODULE_PROPERTIES
  65. };
  66. /* }}} */
  67. #ifdef COMPILE_DL_%EXTNAMECAPS%
  68. # ifdef ZTS
  69. ZEND_TSRMLS_CACHE_DEFINE()
  70. # endif
  71. ZEND_GET_MODULE(%EXTNAME%)
  72. #endif