xlswriter.c 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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 "xlswriter.h"
  18. #if ENABLE_READER
  19. #include <xlsxio_version.h>
  20. #include <xlsxio_read.h>
  21. #endif
  22. int le_xls_writer;
  23. /* {{{ PHP_MINIT_FUNCTION
  24. */
  25. PHP_MINIT_FUNCTION(xlswriter)
  26. {
  27. VTIFUL_STARTUP_MODULE(exception);
  28. VTIFUL_STARTUP_MODULE(excel);
  29. VTIFUL_STARTUP_MODULE(format);
  30. VTIFUL_STARTUP_MODULE(chart);
  31. le_xls_writer = zend_register_list_destructors_ex(_php_vtiful_xls_close, NULL, VTIFUL_RESOURCE_NAME, module_number);
  32. return SUCCESS;
  33. }
  34. /* }}} */
  35. /* {{{ PHP_MSHUTDOWN_FUNCTION
  36. */
  37. PHP_MSHUTDOWN_FUNCTION(xlswriter)
  38. {
  39. return SUCCESS;
  40. }
  41. /* }}} */
  42. /* {{{ PHP_RINIT_FUNCTION
  43. */
  44. PHP_RINIT_FUNCTION(xlswriter)
  45. {
  46. #if defined(COMPILE_DL_VTIFUL) && defined(ZTS)
  47. ZEND_TSRMLS_CACHE_UPDATE();
  48. #endif
  49. return SUCCESS;
  50. }
  51. /* }}} */
  52. /* {{{ PHP_RSHUTDOWN_FUNCTION
  53. */
  54. PHP_RSHUTDOWN_FUNCTION(xlswriter)
  55. {
  56. return SUCCESS;
  57. }
  58. /* }}} */
  59. /* {{{ PHP_MINFO_FUNCTION
  60. */
  61. PHP_MINFO_FUNCTION(xlswriter)
  62. {
  63. php_info_print_table_start();
  64. php_info_print_table_header(2, "xlswriter support", "enabled");
  65. #if defined(PHP_XLSWRITER_VERSION)
  66. php_info_print_table_row(2, "Version", PHP_XLSWRITER_VERSION);
  67. #endif
  68. #ifdef LXW_VERSION
  69. #ifdef HAVE_LIBXLSXWRITER
  70. /* Build time */
  71. php_info_print_table_row(2, "libxlsxwriter headers version", LXW_VERSION);
  72. /* Run time, available since 0.7.9 */
  73. php_info_print_table_row(2, "libxlsxwriter library version", lxw_version());
  74. #else
  75. php_info_print_table_row(2, "bundled libxlsxwriter version", LXW_VERSION);
  76. #endif
  77. #endif
  78. #if ENABLE_READER
  79. #if HAVE_LIBXLSXIO
  80. /* Build time */
  81. php_info_print_table_row(2, "libxlsxio headers version", XLSXIO_VERSION_STRING);
  82. /* Run time */
  83. php_info_print_table_row(2, "libxlsxio library version", xlsxioread_get_version_string());
  84. #else
  85. php_info_print_table_row(2, "bundled libxlsxio version", XLSXIO_VERSION_STRING);
  86. #endif
  87. #endif
  88. php_info_print_table_end();
  89. }
  90. /* }}} */
  91. /* {{{ xlswriter_functions[]
  92. *
  93. * Every user visible function must have an entry in xlswriter_functions[].
  94. */
  95. const zend_function_entry xlswriter_functions[] = {
  96. PHP_FE_END
  97. };
  98. /* }}} */
  99. /* {{{ vtiful_module_entry
  100. */
  101. zend_module_entry xlswriter_module_entry = {
  102. STANDARD_MODULE_HEADER,
  103. "xlswriter",
  104. xlswriter_functions,
  105. PHP_MINIT(xlswriter),
  106. PHP_MSHUTDOWN(xlswriter),
  107. PHP_RINIT(xlswriter), /* Replace with NULL if there's nothing to do at request start */
  108. PHP_RSHUTDOWN(xlswriter), /* Replace with NULL if there's nothing to do at request end */
  109. PHP_MINFO(xlswriter),
  110. PHP_XLSWRITER_VERSION,
  111. STANDARD_MODULE_PROPERTIES
  112. };
  113. /* }}} */
  114. #ifdef COMPILE_DL_XLSWRITER
  115. #ifdef ZTS
  116. ZEND_TSRMLS_CACHE_DEFINE();
  117. #endif
  118. ZEND_GET_MODULE(xlswriter)
  119. #endif
  120. /*
  121. * Local variables:
  122. * tab-width: 4
  123. * c-basic-offset: 4
  124. * End:
  125. * vim600: noet sw=4 ts=4 fdm=marker
  126. * vim<600: noet sw=4 ts=4
  127. */