xls_writer.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*
  2. +----------------------------------------------------------------------+
  3. | XlsWriter Extension |
  4. +----------------------------------------------------------------------+
  5. | Copyright (c) 2017-2018 The Viest |
  6. +----------------------------------------------------------------------+
  7. | http://www.viest.me |
  8. +----------------------------------------------------------------------+
  9. | Author: viest <[email protected]> |
  10. +----------------------------------------------------------------------+
  11. */
  12. #ifdef HAVE_CONFIG_H
  13. #include "config.h"
  14. #endif
  15. #include "php.h"
  16. #include "ext/standard/info.h"
  17. #include "kernel/include.h"
  18. int le_xls_writer;
  19. /* {{{ PHP_MINIT_FUNCTION
  20. */
  21. PHP_MINIT_FUNCTION(xlswriter)
  22. {
  23. VTIFUL_STARTUP_MODULE(exception);
  24. VTIFUL_STARTUP_MODULE(excel);
  25. VTIFUL_STARTUP_MODULE(format);
  26. VTIFUL_STARTUP_MODULE(chart);
  27. le_xls_writer = zend_register_list_destructors_ex(_php_vtiful_xls_close, NULL, VTIFUL_RESOURCE_NAME, module_number);
  28. return SUCCESS;
  29. }
  30. /* }}} */
  31. /* {{{ PHP_MSHUTDOWN_FUNCTION
  32. */
  33. PHP_MSHUTDOWN_FUNCTION(xlswriter)
  34. {
  35. return SUCCESS;
  36. }
  37. /* }}} */
  38. /* {{{ PHP_RINIT_FUNCTION
  39. */
  40. PHP_RINIT_FUNCTION(xlswriter)
  41. {
  42. #if defined(COMPILE_DL_VTIFUL) && defined(ZTS)
  43. ZEND_TSRMLS_CACHE_UPDATE();
  44. #endif
  45. return SUCCESS;
  46. }
  47. /* }}} */
  48. /* {{{ PHP_RSHUTDOWN_FUNCTION
  49. */
  50. PHP_RSHUTDOWN_FUNCTION(xlswriter)
  51. {
  52. return SUCCESS;
  53. }
  54. /* }}} */
  55. /* {{{ PHP_MINFO_FUNCTION
  56. */
  57. PHP_MINFO_FUNCTION(xlswriter)
  58. {
  59. php_info_print_table_start();
  60. php_info_print_table_header(2, "xlswriter support", "enabled");
  61. #if defined(PHP_XLSWRITER_VERSION)
  62. php_info_print_table_row(2, "Version", PHP_XLSWRITER_VERSION);
  63. #endif
  64. #ifdef LXW_VERSION
  65. #ifdef HAVE_LIBXLSXWRITER
  66. /* Build time */
  67. php_info_print_table_row(2, "libxlsxwriter headers version", LXW_VERSION);
  68. #ifdef HAVE_LXW_VERSION
  69. /* Run time, available since 0.7.9 */
  70. php_info_print_table_row(2, "libxlsxwriter library version", lxw_version());
  71. #endif
  72. #else
  73. php_info_print_table_row(2, "bundled libxlsxwriter version", LXW_VERSION);
  74. #endif
  75. #endif
  76. php_info_print_table_end();
  77. }
  78. /* }}} */
  79. /* {{{ xlswriter_functions[]
  80. *
  81. * Every user visible function must have an entry in xlswriter_functions[].
  82. */
  83. const zend_function_entry xlswriter_functions[] = {
  84. PHP_FE_END
  85. };
  86. /* }}} */
  87. /* {{{ vtiful_module_entry
  88. */
  89. zend_module_entry xlswriter_module_entry = {
  90. STANDARD_MODULE_HEADER,
  91. "xlswriter",
  92. xlswriter_functions,
  93. PHP_MINIT(xlswriter),
  94. PHP_MSHUTDOWN(xlswriter),
  95. PHP_RINIT(xlswriter), /* Replace with NULL if there's nothing to do at request start */
  96. PHP_RSHUTDOWN(xlswriter), /* Replace with NULL if there's nothing to do at request end */
  97. PHP_MINFO(xlswriter),
  98. PHP_XLSWRITER_VERSION,
  99. STANDARD_MODULE_PROPERTIES
  100. };
  101. /* }}} */
  102. #ifdef COMPILE_DL_XLSWRITER
  103. #ifdef ZTS
  104. ZEND_TSRMLS_CACHE_DEFINE();
  105. #endif
  106. ZEND_GET_MODULE(xlswriter)
  107. #endif
  108. /*
  109. * Local variables:
  110. * tab-width: 4
  111. * c-basic-offset: 4
  112. * End:
  113. * vim600: noet sw=4 ts=4 fdm=marker
  114. * vim<600: noet sw=4 ts=4
  115. */