php-ext-xlswriter/xlswriter.c

171 lines
4.1 KiB
C

/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php.h"
#include "ext/standard/info.h"
#include "xlswriter.h"
#if ENABLE_READER
#include <xlsxio_version.h>
#include <xlsxio_read.h>
#endif
int le_xls_writer;
ZEND_BEGIN_ARG_INFO_EX(xlswriter_get_version_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(xlswriter_get_auther_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
/* {{{ xlswriter_get_version
*/
PHP_FUNCTION(xlswriter_get_version)
{
RETURN_STRINGL(PHP_XLSWRITER_VERSION, strlen(PHP_XLSWRITER_VERSION));
}
/* }}} */
/* {{{ xlswriter_get_author
*/
PHP_FUNCTION(xlswriter_get_author)
{
RETURN_STRINGL(PHP_XLSWRITER_AUTHOR, strlen(PHP_XLSWRITER_AUTHOR));
}
/* }}} */
/* {{{ PHP_MINIT_FUNCTION
*/
PHP_MINIT_FUNCTION(xlswriter)
{
VTIFUL_STARTUP_MODULE(exception);
VTIFUL_STARTUP_MODULE(excel);
VTIFUL_STARTUP_MODULE(format);
VTIFUL_STARTUP_MODULE(chart);
VTIFUL_STARTUP_MODULE(validation);
VTIFUL_STARTUP_MODULE(rich_string);
le_xls_writer = zend_register_list_destructors_ex(_php_vtiful_xls_close, NULL, VTIFUL_RESOURCE_NAME, module_number);
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MSHUTDOWN_FUNCTION
*/
PHP_MSHUTDOWN_FUNCTION(xlswriter)
{
return SUCCESS;
}
/* }}} */
/* {{{ PHP_RINIT_FUNCTION
*/
PHP_RINIT_FUNCTION(xlswriter)
{
#if defined(COMPILE_DL_VTIFUL) && defined(ZTS)
ZEND_TSRMLS_CACHE_UPDATE();
#endif
return SUCCESS;
}
/* }}} */
/* {{{ PHP_RSHUTDOWN_FUNCTION
*/
PHP_RSHUTDOWN_FUNCTION(xlswriter)
{
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(xlswriter)
{
php_info_print_table_start();
php_info_print_table_header(2, "xlswriter support", "enabled");
#if defined(PHP_XLSWRITER_VERSION)
php_info_print_table_row(2, "Version", PHP_XLSWRITER_VERSION);
#endif
#ifdef LXW_VERSION
#ifdef HAVE_LIBXLSXWRITER
/* Build time */
php_info_print_table_row(2, "libxlsxwriter headers version", LXW_VERSION);
/* Run time, available since 0.7.9 */
php_info_print_table_row(2, "libxlsxwriter library version", lxw_version());
#else
php_info_print_table_row(2, "bundled libxlsxwriter version", LXW_VERSION);
#endif
#endif
#if ENABLE_READER
#if HAVE_LIBXLSXIO
/* Build time */
php_info_print_table_row(2, "libxlsxio headers version", XLSXIO_VERSION_STRING);
/* Run time */
php_info_print_table_row(2, "libxlsxio library version", xlsxioread_get_version_string());
#else
php_info_print_table_row(2, "bundled libxlsxio version", XLSXIO_VERSION_STRING);
#endif
#endif
php_info_print_table_end();
}
/* }}} */
/* {{{ xlswriter_functions[]
*
* Every user visible function must have an entry in xlswriter_functions[].
*/
const zend_function_entry xlswriter_functions[] = {
PHP_FE(xlswriter_get_version, xlswriter_get_version_arginfo)
PHP_FE(xlswriter_get_author, xlswriter_get_auther_arginfo)
PHP_FE_END
};
/* }}} */
/* {{{ vtiful_module_entry
*/
zend_module_entry xlswriter_module_entry = {
STANDARD_MODULE_HEADER,
"xlswriter",
xlswriter_functions,
PHP_MINIT(xlswriter),
PHP_MSHUTDOWN(xlswriter),
PHP_RINIT(xlswriter), /* Replace with NULL if there's nothing to do at request start */
PHP_RSHUTDOWN(xlswriter), /* Replace with NULL if there's nothing to do at request end */
PHP_MINFO(xlswriter),
PHP_XLSWRITER_VERSION,
STANDARD_MODULE_PROPERTIES
};
/* }}} */
#ifdef COMPILE_DL_XLSWRITER
#ifdef ZTS
ZEND_TSRMLS_CACHE_DEFINE();
#endif
ZEND_GET_MODULE(xlswriter)
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/