初始化PHP-Xlswrite扩展

This commit is contained in:
ykxiao
2024-03-05 10:01:08 +08:00
commit 879cf9584d
2483 changed files with 1054962 additions and 0 deletions

343
kernel/chart.c Normal file
View File

@ -0,0 +1,343 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
zend_class_entry *vtiful_chart_ce;
/* {{{ format_objects_new
*/
static zend_object_handlers chart_handlers;
static zend_always_inline void *vtiful_char_object_alloc(size_t obj_size, zend_class_entry *ce) {
void *obj = emalloc(obj_size);
memset(obj, 0, obj_size);
return obj;
}
PHP_VTIFUL_API zend_object *chart_objects_new(zend_class_entry *ce)
{
chart_object *format = (chart_object *)vtiful_char_object_alloc(sizeof(chart_object), ce);
zend_object_std_init(&format->zo, ce);
object_properties_init(&format->zo, ce);
format->ptr.chart = NULL;
format->ptr.series = NULL;
format->zo.handlers = &chart_handlers;
return &format->zo;
}
/* }}} */
/* {{{ chart_objects_free
*/
static void chart_objects_free(zend_object *object)
{
chart_object *intern = php_vtiful_chart_fetch_object(object);
if (intern->ptr.series != NULL) {
// free by workbook
intern->ptr.series = NULL;
}
if (intern->ptr.chart != NULL) {
// free by workbook
intern->ptr.chart = NULL;
}
zend_object_std_dtor(&intern->zo);
}
/* }}} */
/* {{{ ARG_INFO
*/
ZEND_BEGIN_ARG_INFO_EX(chart_construct_arginfo, 0, 0, 2)
ZEND_ARG_INFO(0, handle)
ZEND_ARG_INFO(0, type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_series_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, value)
ZEND_ARG_INFO(0, categories)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_series_name_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_style_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, style)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_axis_name_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, name)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_title_name_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, title)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_legend_set_position_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(chart_to_resource_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::__construct(resource $handle, int $type)
*/
PHP_METHOD(vtiful_chart, __construct)
{
zval *handle;
chart_object *obj;
zend_long type = 0;
xls_resource_write_t *xls_res;
ZEND_PARSE_PARAMETERS_START(2, 2)
Z_PARAM_RESOURCE(handle)
Z_PARAM_LONG(type)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
xls_res = zval_get_resource(handle);
obj = Z_CHART_P(getThis());
if (obj->ptr.chart == NULL) {
obj->ptr.chart = workbook_add_chart(xls_res->workbook, (uint8_t)type);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::series(string $value, string $categories)
*/
PHP_METHOD(vtiful_chart, series)
{
chart_object *obj;
zend_string *values, *categories = NULL;
ZEND_PARSE_PARAMETERS_START(1, 2)
Z_PARAM_STR(values)
Z_PARAM_OPTIONAL
Z_PARAM_STR(categories)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
if (ZEND_NUM_ARGS() == 2) {
obj->ptr.series = chart_add_series(obj->ptr.chart, ZSTR_VAL(categories), ZSTR_VAL(values));
}
if (ZEND_NUM_ARGS() == 1) {
obj->ptr.series = chart_add_series(obj->ptr.chart, NULL, ZSTR_VAL(values));
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::seriesName(string $value)
*/
PHP_METHOD(vtiful_chart, seriesName)
{
chart_object *obj;
zend_string *values;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(values)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_series_set_name(obj->ptr.series, ZSTR_VAL(values));
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::style(int $style)
*/
PHP_METHOD(vtiful_chart, style)
{
chart_object *obj;
zend_long style = 0;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(style)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_set_style(obj->ptr.chart, (uint8_t)style);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::axisNameX(string $name)
*/
PHP_METHOD(vtiful_chart, axisNameX)
{
chart_object *obj;
zend_string *name;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(name)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_axis_set_name(obj->ptr.chart->x_axis, ZSTR_VAL(name));
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::axisNameY(string $name)
*/
PHP_METHOD(vtiful_chart, axisNameY)
{
chart_object *obj;
zend_string *name;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(name)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_axis_set_name(obj->ptr.chart->y_axis, ZSTR_VAL(name));
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::title(string $title)
*/
PHP_METHOD(vtiful_chart, title)
{
chart_object *obj;
zend_string *title;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(title)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_title_set_name(obj->ptr.chart, ZSTR_VAL(title));
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::legendSetPosition(int $type)
*/
PHP_METHOD(vtiful_chart, legendSetPosition)
{
zend_long type = 0;
chart_object *obj;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(type)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_CHART_P(getThis());
chart_legend_set_position(obj->ptr.chart, (uint8_t)type);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Chart::toResource()
*/
PHP_METHOD(vtiful_chart, toResource)
{
chart_object *obj = Z_CHART_P(getThis());
RETURN_RES(zend_register_resource(&obj->ptr, le_xls_writer));
}
/* }}} */
/** {{{ chart_methods
*/
zend_function_entry chart_methods[] = {
PHP_ME(vtiful_chart, __construct, chart_construct_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, series, chart_series_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, seriesName, chart_series_name_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, style, chart_style_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, axisNameY, chart_axis_name_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, axisNameX, chart_axis_name_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, title, chart_title_name_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, legendSetPosition, chart_legend_set_position_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_chart, toResource, chart_to_resource_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
/* {{{ */
VTIFUL_STARTUP_FUNCTION(chart)
{
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "Chart", chart_methods);
ce.create_object = chart_objects_new;
vtiful_chart_ce = zend_register_internal_class(&ce);
memcpy(&chart_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
chart_handlers.offset = XtOffsetOf(chart_object, zo);
chart_handlers.free_obj = chart_objects_free;
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_BAR", LXW_CHART_BAR)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_BAR_STACKED", LXW_CHART_BAR_STACKED)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_BAR_STACKED_PERCENT", LXW_CHART_BAR_STACKED_PERCENT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_AREA", LXW_CHART_AREA)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_AREA_STACKED", LXW_CHART_AREA_STACKED)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_AREA_STACKED_PERCENT", LXW_CHART_AREA_STACKED_PERCENT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LINE", LXW_CHART_LINE)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_COLUMN", LXW_CHART_COLUMN)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_COLUMN_STACKED", LXW_CHART_COLUMN_STACKED)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_COLUMN_STACKED_PERCENT", LXW_CHART_COLUMN_STACKED_PERCENT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_DOUGHNUT", LXW_CHART_DOUGHNUT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_PIE", LXW_CHART_PIE)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_SCATTER", LXW_CHART_SCATTER)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_SCATTER_STRAIGHT", LXW_CHART_SCATTER_STRAIGHT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_SCATTER_STRAIGHT_WITH_MARKERS", LXW_CHART_SCATTER_STRAIGHT_WITH_MARKERS)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_SCATTER_SMOOTH", LXW_CHART_SCATTER_SMOOTH)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_SCATTER_SMOOTH_WITH_MARKERS", LXW_CHART_SCATTER_SMOOTH_WITH_MARKERS)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_RADAR", LXW_CHART_RADAR)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_RADAR_WITH_MARKERS", LXW_CHART_RADAR_WITH_MARKERS)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_RADAR_FILLED", LXW_CHART_RADAR_FILLED)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_NONE", LXW_CHART_LEGEND_NONE)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_RIGHT", LXW_CHART_LEGEND_RIGHT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_LEFT", LXW_CHART_LEGEND_LEFT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_TOP", LXW_CHART_LEGEND_TOP)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_BOTTOM", LXW_CHART_LEGEND_BOTTOM)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_OVERLAY_RIGHT", LXW_CHART_LEGEND_OVERLAY_RIGHT)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_OVERLAY_LEFT", LXW_CHART_LEGEND_OVERLAY_LEFT)
#if defined(LXW_VERSION_ID) && LXW_VERSION_ID >= 95
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LINE_STACKED", LXW_CHART_LINE_STACKED)
REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LINE_STACKED_PERCENT", LXW_CHART_LINE_STACKED_PERCENT)
#endif
// PECL Windows version is 0.7.7, but define in 0.7.8
//REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_TOP_RIGHT", LXW_CHART_LEGEND_TOP_RIGHT)
//REGISTER_CLASS_CONST_LONG(vtiful_chart_ce, "CHART_LEGEND_OVERLAY_TOP_RIGHT", LXW_CHART_LEGEND_OVERLAY_TOP_RIGHT)
return SUCCESS;
}
/* }}} */

121
kernel/chart.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/chart.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/chart.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

105
kernel/common.c Normal file
View File

@ -0,0 +1,105 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
/* {{{ */
void xls_file_path(zend_string *file_name, zval *dir_path, zval *file_path)
{
zend_string *full_path, *zstr_path;
zstr_path = zval_get_string(dir_path);
if (Z_STRVAL_P(dir_path)[Z_STRLEN_P(dir_path)-1] == '/') {
full_path = zend_string_extend(zstr_path, ZSTR_LEN(zstr_path) + ZSTR_LEN(file_name), 0);
memcpy(ZSTR_VAL(full_path)+ZSTR_LEN(zstr_path), ZSTR_VAL(file_name), ZSTR_LEN(file_name)+1);
} else {
full_path = zend_string_extend(zstr_path, ZSTR_LEN(zstr_path) + ZSTR_LEN(file_name) + 1, 0);
ZSTR_VAL(full_path)[ZSTR_LEN(zstr_path)] ='/';
memcpy(ZSTR_VAL(full_path)+ZSTR_LEN(zstr_path)+1, ZSTR_VAL(file_name), ZSTR_LEN(file_name)+1);
}
ZVAL_STR(file_path, full_path);
}
/* }}} */
/* {{{ */
zend_string* str_pick_up(zend_string *left, const char *right, size_t len)
{
zend_string *full = NULL;
size_t _left_length = ZSTR_LEN(left);
size_t _extend_length = _left_length + len;
full = zend_string_extend(left, _extend_length, 0);
memcpy(ZSTR_VAL(full) + _left_length, right, len);
ZSTR_VAL(full)[_extend_length] = '\0';
return full;
}
/* }}} */
/* {{{ */
zend_string* char_join_to_zend_str(const char *left, const char *right)
{
size_t _new_len = strlen(left) + strlen(right);
zend_string *str = zend_string_alloc(_new_len, 0);
memcpy(ZSTR_VAL(str), left, strlen(left));
memcpy(ZSTR_VAL(str) + strlen(left), right, strlen(right) + 1);
ZSTR_VAL(str)[_new_len] = '\0';
return str;
}
/* }}} */
/* {{{ */
void call_object_method(zval *object, const char *function_name, uint32_t param_count, zval *params, zval *ret_val)
{
uint32_t index;
zval z_f_name;
ZVAL_STRINGL(&z_f_name, function_name, strlen(function_name));
call_user_function(NULL, object, &z_f_name, ret_val, param_count, params);
if (Z_ISUNDEF_P(ret_val)) {
ZVAL_NULL(ret_val);
}
for (index = 0; index < param_count; index++) {
zval_ptr_dtor(&params[index]);
}
zval_ptr_dtor(&z_f_name);
}
/* }}} */
lxw_datetime timestamp_to_datetime(zend_long timestamp)
{
int yearLocal = php_idate('Y', timestamp, 0);
int monthLocal = php_idate('m', timestamp, 0);
int dayLocal = php_idate('d', timestamp, 0);
int hourLocal = php_idate('H', timestamp, 0);
int minuteLocal = php_idate('i', timestamp, 0);
int secondLocal = php_idate('s', timestamp, 0);
lxw_datetime datetime = {
yearLocal, monthLocal, dayLocal, hourLocal, minuteLocal, secondLocal
};
return datetime;
}

121
kernel/common.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/common.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/common.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

127
kernel/csv.c Normal file
View File

@ -0,0 +1,127 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
#include "php_streams.h"
#include "ext/standard/file.h"
/* {{{ */
unsigned int xlsx_to_csv(
zval *stream_resource,
const char *delimiter_str, int delimiter_str_len,
const char *enclosure_str, int enclosure_str_len,
const char *escape_str, int escape_str_len,
xlsxioreadersheet sheet_t,
zval *zv_type_arr_t, zend_long data_type_default,
unsigned int flag, zend_fcall_info *fci, zend_fcall_info_cache *fci_cache
)
{
ssize_t ret = 0;
zval *_zv_type_arr_t = NULL;
php_stream *_stream_t = NULL;
char delimiter = ',', enclosure = '"', escape_char = '\\';
ZEND_ASSERT(Z_TYPE_P(stream_resource) == IS_RESOURCE);
if (((_stream_t) = (php_stream *)zend_fetch_resource2((Z_RES_P(stream_resource)),
"stream", php_file_le_stream(), php_file_le_pstream())) == NULL) {
return XLSWRITER_FALSE;
}
if (delimiter_str != NULL) {
if (delimiter_str_len < 1) {
zend_throw_exception(vtiful_exception_ce, "delimiter must be a character", 190);
return XLSWRITER_FALSE;
} else if (delimiter_str_len > 1) {
zend_throw_exception(vtiful_exception_ce, "delimiter must be a single character", 191);
return XLSWRITER_FALSE;
}
delimiter = *delimiter_str;
}
if (enclosure_str != NULL) {
if (enclosure_str_len < 1) {
zend_throw_exception(vtiful_exception_ce, "enclosure must be a character", 192);
return XLSWRITER_FALSE;
} else if (enclosure_str_len > 1) {
zend_throw_exception(vtiful_exception_ce, "enclosure must be a single character", 193);
return XLSWRITER_FALSE;
}
enclosure = *enclosure_str;
}
if (escape_str != NULL) {
if (escape_str_len < 1) {
zend_throw_exception(vtiful_exception_ce, "escape must be a character", 194);
return XLSWRITER_FALSE;
} else if (escape_str_len > 1) {
zend_throw_exception(vtiful_exception_ce, "escape must be a single character", 195);
return XLSWRITER_FALSE;
}
escape_char = *escape_str;
}
if (Z_TYPE_P(zv_type_arr_t) == IS_ARRAY) {
_zv_type_arr_t = zv_type_arr_t;
}
zval _zv_tmp_row;
ZVAL_NULL(&_zv_tmp_row);
while (sheet_read_row(sheet_t))
{
load_sheet_current_row_data(sheet_t, &_zv_tmp_row, _zv_type_arr_t, data_type_default, flag);
if (fci != NULL && fci_cache != NULL) {
zval retval;
fci->retval = &retval;
fci->params = &_zv_tmp_row;
fci->param_count = 1;
zend_call_function(fci, fci_cache);
if (Z_TYPE(retval) == IS_ARRAY) {
#if PHP_VERSION_ID >= 80100
ret = php_fputcsv(_stream_t, &retval, delimiter, enclosure, escape_char, NULL);
#else
ret = php_fputcsv(_stream_t, &retval, delimiter, enclosure, escape_char);
#endif
}
zval_ptr_dtor(&retval);
goto CLEAN_UP_SCENE;
}
#if PHP_VERSION_ID >= 80100
ret = php_fputcsv(_stream_t, &_zv_tmp_row, delimiter, enclosure, escape_char, NULL);
#else
ret = php_fputcsv(_stream_t, &_zv_tmp_row, delimiter, enclosure, escape_char);
#endif
CLEAN_UP_SCENE:
zend_hash_clean(Z_ARRVAL(_zv_tmp_row));
if (ret < 0) {
return XLSWRITER_FALSE;
}
}
zval_dtor(&_zv_tmp_row);
return XLSWRITER_TRUE;
}
/* }}} */

123
kernel/csv.dep Normal file
View File

@ -0,0 +1,123 @@
kernel/csv.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/csv.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h \
/usr/local/etc/php/include/php/ext/standard/file.h \
/usr/local/etc/php/include/php/main/php_network.h

1842
kernel/excel.c Normal file

File diff suppressed because it is too large Load Diff

121
kernel/excel.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/excel.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/excel.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

85
kernel/exception.c Normal file
View File

@ -0,0 +1,85 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
zend_class_entry *vtiful_exception_ce;
/** {{{ exception_methods
*/
zend_function_entry exception_methods[] = {
PHP_FE_END
};
/* }}} */
/** {{{ VTIFUL_STARTUP_FUNCTION
*/
VTIFUL_STARTUP_FUNCTION(exception) {
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "Exception", exception_methods);
vtiful_exception_ce = zend_register_internal_class_ex(&ce, zend_ce_exception);
return SUCCESS;
}
/* }}} */
/** {{{ exception_message_map
*/
char* exception_message_map(int code) {
switch (code) {
case LXW_ERROR_MEMORY_MALLOC_FAILED:
return "Memory error, failed to malloc() required memory.";
case LXW_ERROR_CREATING_XLSX_FILE:
return "Error creating output xlsx file. Usually a permissions error.";
case LXW_ERROR_CREATING_TMPFILE:
return "Error encountered when creating a tmpfile during file assembly.";
case LXW_ERROR_READING_TMPFILE:
return "Error reading a tmpfile.";
case LXW_ERROR_ZIP_FILE_OPERATION:
return "Zlib error with a file operation while creating xlsx file.";
case LXW_ERROR_ZIP_FILE_ADD:
return "Zlib error when adding sub file to xlsx file.";
case LXW_ERROR_ZIP_CLOSE:
return "Zlib error when closing xlsx file.";
case LXW_ERROR_NULL_PARAMETER_IGNORED:
return "NULL function parameter ignored.";
case LXW_ERROR_PARAMETER_VALIDATION:
return "Function parameter validation error.";
case LXW_ERROR_SHEETNAME_LENGTH_EXCEEDED:
return "Worksheet name exceeds Excel's limit of 31 characters.";
case LXW_ERROR_INVALID_SHEETNAME_CHARACTER:
return "Worksheet name contains invalid.";
case LXW_ERROR_SHEETNAME_ALREADY_USED:
return "Worksheet name is already in use.";
case LXW_ERROR_32_STRING_LENGTH_EXCEEDED:
return "Parameter exceeds Excel's limit of 32 characters.";
case LXW_ERROR_128_STRING_LENGTH_EXCEEDED:
return "Parameter exceeds Excel's limit of 128 characters.";
case LXW_ERROR_255_STRING_LENGTH_EXCEEDED:
return "Parameter exceeds Excel's limit of 255 characters.";
case LXW_ERROR_MAX_STRING_LENGTH_EXCEEDED:
return "String exceeds Excel's limit of 32:767 characters.";
case LXW_ERROR_SHARED_STRING_INDEX_NOT_FOUND:
return "Error finding internal string index.";
case LXW_ERROR_WORKSHEET_INDEX_OUT_OF_RANGE:
return "Worksheet row or column index out of range.";
case LXW_ERROR_WORKSHEET_MAX_NUMBER_URLS_EXCEEDED:
return "Maximum number of worksheet URLs (65530) exceeded.";
case LXW_ERROR_IMAGE_DIMENSIONS:
return "Couldn't read image dimensions or DPI.";
default:
return "Unknown error";
}
}
/* }}} */

121
kernel/exception.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/exception.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/exception.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

602
kernel/format.c Normal file
View File

@ -0,0 +1,602 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
zend_class_entry *vtiful_format_ce;
/* {{{ format_objects_new
*/
static zend_object_handlers format_handlers;
static zend_always_inline void *vtiful_format_object_alloc(size_t obj_size, zend_class_entry *ce) {
void *obj = emalloc(obj_size);
memset(obj, 0, obj_size);
return obj;
}
PHP_VTIFUL_API zend_object *format_objects_new(zend_class_entry *ce)
{
format_object *format = vtiful_format_object_alloc(sizeof(format_object), ce);
zend_object_std_init(&format->zo, ce);
object_properties_init(&format->zo, ce);
format->ptr.format = NULL;
format->zo.handlers = &format_handlers;
return &format->zo;
}
/* }}} */
/* {{{ format_objects_free
*/
static void format_objects_free(zend_object *object)
{
format_object *intern = php_vtiful_format_fetch_object(object);
if (intern->ptr.format != NULL) {
// free by workbook
intern->ptr.format = NULL;
}
zend_object_std_dtor(&intern->zo);
}
/* }}} */
/* {{{ ARG_INFO
*/
ZEND_BEGIN_ARG_INFO_EX(format_construct_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, handle)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_wrap_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_bold_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_italic_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_underline_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, style)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_unlocked_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_align_arginfo, 0, 0, 1)
ZEND_ARG_VARIADIC_INFO(0, style)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_color_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, color)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_size_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, size)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_strikeout_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_number_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, format)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_background_arginfo, 0, 0, 2)
ZEND_ARG_INFO(0, pattern)
ZEND_ARG_INFO(0, color)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_border_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, style)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_border_of_the_four_sides_arginfo, 0, 0, 4)
ZEND_ARG_INFO(0, top)
ZEND_ARG_INFO(0, right)
ZEND_ARG_INFO(0, bottom)
ZEND_ARG_INFO(0, left)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_border_color_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, color)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_border_color_of_the_four_sides_arginfo, 0, 0, 4)
ZEND_ARG_INFO(0, top_color)
ZEND_ARG_INFO(0, right_color)
ZEND_ARG_INFO(0, bottom_color)
ZEND_ARG_INFO(0, left_color)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_font_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, font)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(format_to_resource_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
/* }}} */
/** {{{ \Vtiful\Kernel\Format::__construct()
*/
PHP_METHOD(vtiful_format, __construct)
{
zval *handle;
format_object *obj;
xls_resource_write_t *xls_res;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_RESOURCE(handle)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
xls_res = zval_get_resource(handle);
obj = Z_FORMAT_P(getThis());
if (obj->ptr.format == NULL) {
obj->ptr.format = workbook_add_format(xls_res->workbook);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::bold()
*/
PHP_METHOD(vtiful_format, bold)
{
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_bold(obj->ptr.format);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::italic()
*/
PHP_METHOD(vtiful_format, italic)
{
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_italic(obj->ptr.format);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::underline()
*/
PHP_METHOD(vtiful_format, underline)
{
zend_long style = 0;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(style)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_underline(obj->ptr.format, style);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::unlocked()
*/
PHP_METHOD(vtiful_format, unlocked)
{
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_unlocked(obj->ptr.format);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::align()
*/
PHP_METHOD(vtiful_format, align)
{
zval *args = NULL;
int argc, i;
ZEND_PARSE_PARAMETERS_START(1, -1)
Z_PARAM_VARIADIC('+', args, argc)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
for (i = 0; i < argc; ++i) {
zval *arg = args + i;
if (Z_TYPE_P(arg) != IS_LONG) {
zend_throw_exception(vtiful_exception_ce, "Format exception, please view the manual", 150);
}
if (obj->ptr.format) {
format_set_align(obj->ptr.format, Z_LVAL_P(arg));
}
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::fontColor(int $color)
*/
PHP_METHOD(vtiful_format, fontColor)
{
zend_long color = 0;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(color)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_font_color(obj->ptr.format, color);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::number(string $format)
*/
PHP_METHOD(vtiful_format, number)
{
zend_string *format;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(format)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_num_format(obj->ptr.format, ZSTR_VAL(format));
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::background(int $color [, int $pattern = \Vtiful\Kernel\Format::PATTERN_SOLID])
*/
PHP_METHOD(vtiful_format, background)
{
zend_long pattern = LXW_PATTERN_SOLID, color = 0;
ZEND_PARSE_PARAMETERS_START(1, 2)
Z_PARAM_LONG(color)
Z_PARAM_OPTIONAL
Z_PARAM_LONG(pattern)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_pattern(obj->ptr.format, pattern);
format_set_bg_color(obj->ptr.format, color);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::fontSize(double $size)
*/
PHP_METHOD(vtiful_format, fontSize)
{
double size;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_DOUBLE(size)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_font_size(obj->ptr.format, size);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::font(string $fontName)
*/
PHP_METHOD(vtiful_format, font)
{
zend_string *font_name = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(font_name)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_font_name(obj->ptr.format, ZSTR_VAL(font_name));
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::strikeout()
*/
PHP_METHOD(vtiful_format, strikeout)
{
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_font_strikeout(obj->ptr.format);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::wrap()
*/
PHP_METHOD(vtiful_format, wrap)
{
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_text_wrap(obj->ptr.format);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::border()
*/
PHP_METHOD(vtiful_format, border)
{
zend_long style = 0;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(style)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_border(obj->ptr.format, style);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::borderOfTheFourSides(int $top, int $right, int $bottom, int $left)
*/
PHP_METHOD(vtiful_format, borderOfTheFourSides)
{
zend_long top = LXW_BORDER_NONE, right = LXW_BORDER_NONE, bottom = LXW_BORDER_NONE, left = LXW_BORDER_NONE;
ZEND_PARSE_PARAMETERS_START(0, 4)
Z_PARAM_OPTIONAL
Z_PARAM_LONG_OR_NULL(top, _dummy)
Z_PARAM_LONG_OR_NULL(right, _dummy)
Z_PARAM_LONG_OR_NULL(bottom, _dummy)
Z_PARAM_LONG_OR_NULL(left, _dummy)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
format_set_top(obj->ptr.format, top);
format_set_right(obj->ptr.format, right);
format_set_bottom(obj->ptr.format, bottom);
format_set_left(obj->ptr.format, left);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::borderColor(int $color)
*/
PHP_METHOD(vtiful_format, borderColor)
{
zend_long color = -1;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(color)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format && color > 0) {
format_set_border_color(obj->ptr.format, color);
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::borderColorOfTheFourSides(int $topColor, int $rightColor, int $bottomColor, int $leftColor)
*/
PHP_METHOD(vtiful_format, borderColorOfTheFourSides)
{
zend_long top = -1, right = -1, bottom = -1, left = -1;
ZEND_PARSE_PARAMETERS_START(0, 4)
Z_PARAM_OPTIONAL
Z_PARAM_LONG_OR_NULL(top, _dummy)
Z_PARAM_LONG_OR_NULL(right, _dummy)
Z_PARAM_LONG_OR_NULL(bottom, _dummy)
Z_PARAM_LONG_OR_NULL(left, _dummy)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
format_object *obj = Z_FORMAT_P(getThis());
if (obj->ptr.format) {
if (top > 0) {
format_set_top_color(obj->ptr.format, top);
}
if (right > 0) {
format_set_right_color(obj->ptr.format, right);
}
if (bottom > 0) {
format_set_bottom_color(obj->ptr.format, bottom);
}
if (left > 0) {
format_set_left_color(obj->ptr.format, left);
}
}
}
/* }}} */
/** {{{ \Vtiful\Kernel\Format::toResource()
*/
PHP_METHOD(vtiful_format, toResource)
{
format_object *obj = Z_FORMAT_P(getThis());
RETURN_RES(zend_register_resource(obj->ptr.format, le_xls_writer));
}
/* }}} */
/** {{{ format_methods
*/
zend_function_entry format_methods[] = {
PHP_ME(vtiful_format, __construct, format_construct_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, wrap, format_wrap_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, bold, format_bold_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, italic, format_italic_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, border, format_border_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, borderOfTheFourSides, format_border_of_the_four_sides_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, borderColor, format_border_color_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, borderColorOfTheFourSides, format_border_color_of_the_four_sides_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, align, format_align_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, number, format_number_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, fontColor, format_color_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, font, format_font_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, fontSize, format_size_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, strikeout, format_strikeout_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, underline, format_underline_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, unlocked, format_unlocked_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, toResource, format_to_resource_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_format, background, format_background_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
/** {{{ VTIFUL_STARTUP_FUNCTION
*/
VTIFUL_STARTUP_FUNCTION(format) {
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "Format", format_methods);
ce.create_object = format_objects_new;
vtiful_format_ce = zend_register_internal_class(&ce);
memcpy(&format_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
format_handlers.offset = XtOffsetOf(format_object, zo);
format_handlers.free_obj = format_objects_free;
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_SINGLE", LXW_UNDERLINE_SINGLE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_DOUBLE ", LXW_UNDERLINE_DOUBLE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_SINGLE_ACCOUNTING", LXW_UNDERLINE_SINGLE_ACCOUNTING)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_DOUBLE_ACCOUNTING", LXW_UNDERLINE_DOUBLE_ACCOUNTING)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_LEFT", LXW_ALIGN_LEFT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_CENTER", LXW_ALIGN_CENTER)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_RIGHT", LXW_ALIGN_RIGHT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_FILL", LXW_ALIGN_FILL)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_JUSTIFY", LXW_ALIGN_JUSTIFY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_CENTER_ACROSS", LXW_ALIGN_CENTER_ACROSS)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_DISTRIBUTED", LXW_ALIGN_DISTRIBUTED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_TOP", LXW_ALIGN_VERTICAL_TOP)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_BOTTOM", LXW_ALIGN_VERTICAL_BOTTOM)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_CENTER", LXW_ALIGN_VERTICAL_CENTER)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_JUSTIFY", LXW_ALIGN_VERTICAL_JUSTIFY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_DISTRIBUTED", LXW_ALIGN_VERTICAL_DISTRIBUTED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BLACK", LXW_COLOR_BLACK)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BLUE", LXW_COLOR_BLUE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BROWN", LXW_COLOR_BROWN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_CYAN", LXW_COLOR_CYAN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_GRAY", LXW_COLOR_GRAY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_GREEN", LXW_COLOR_GREEN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_LIME", LXW_COLOR_LIME)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_MAGENTA", LXW_COLOR_MAGENTA)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_NAVY", LXW_COLOR_NAVY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_ORANGE", LXW_COLOR_ORANGE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_PINK", LXW_COLOR_PINK)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_PURPLE", LXW_COLOR_PURPLE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_RED", LXW_COLOR_RED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_SILVER", LXW_COLOR_SILVER)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_WHITE", LXW_COLOR_WHITE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_YELLOW", LXW_COLOR_YELLOW)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_NONE", LXW_PATTERN_NONE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_SOLID", LXW_PATTERN_SOLID)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_MEDIUM_GRAY", LXW_PATTERN_MEDIUM_GRAY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_GRAY", LXW_PATTERN_DARK_GRAY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_GRAY", LXW_PATTERN_LIGHT_GRAY)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_HORIZONTAL", LXW_PATTERN_DARK_HORIZONTAL)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_VERTICAL", LXW_PATTERN_DARK_VERTICAL)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_DOWN", LXW_PATTERN_DARK_DOWN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_UP", LXW_PATTERN_DARK_UP)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_GRID", LXW_PATTERN_DARK_GRID)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_TRELLIS", LXW_PATTERN_DARK_TRELLIS)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_HORIZONTAL", LXW_PATTERN_LIGHT_HORIZONTAL)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_VERTICAL", LXW_PATTERN_LIGHT_VERTICAL)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_DOWN", LXW_PATTERN_LIGHT_DOWN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_UP", LXW_PATTERN_LIGHT_UP)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_GRID", LXW_PATTERN_LIGHT_GRID)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_TRELLIS", LXW_PATTERN_LIGHT_TRELLIS)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_125", LXW_PATTERN_GRAY_125)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_0625", LXW_PATTERN_GRAY_0625)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_NONE", LXW_BORDER_NONE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_THIN", LXW_BORDER_THIN)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM", LXW_BORDER_MEDIUM)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASHED", LXW_BORDER_DASHED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DOTTED", LXW_BORDER_DOTTED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_THICK", LXW_BORDER_THICK)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DOUBLE", LXW_BORDER_DOUBLE)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_HAIR", LXW_BORDER_HAIR)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASHED", LXW_BORDER_MEDIUM_DASHED)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASH_DOT", LXW_BORDER_DASH_DOT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASH_DOT", LXW_BORDER_MEDIUM_DASH_DOT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASH_DOT_DOT", LXW_BORDER_DASH_DOT_DOT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASH_DOT_DOT", LXW_BORDER_MEDIUM_DASH_DOT_DOT)
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_SLANT_DASH_DOT", LXW_BORDER_SLANT_DASH_DOT)
return SUCCESS;
}
/* }}} */

121
kernel/format.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/format.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/format.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

107
kernel/help.c Normal file
View File

@ -0,0 +1,107 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
#include "ext/date/php_date.h"
#include "ext/standard/php_math.h"
#include "ext/standard/php_filestat.h"
/* {{{ */
zend_long date_double_to_timestamp(double value) {
double days, partDay, hours, minutes, seconds;
days = floor(value);
partDay = value - days;
hours = floor(partDay * 24);
partDay = partDay * 24 - hours;
minutes = floor(partDay * 60);
partDay = partDay * 60 - minutes;
seconds = _php_math_round(partDay * 60, 0, PHP_ROUND_HALF_UP);
zval datetime;
php_date_instantiate(php_date_get_date_ce(), &datetime);
php_date_initialize(Z_PHPDATE_P(&datetime), ZEND_STRL("1899-12-30"), NULL, NULL, 1);
zval _modify_args[1], _modify_result;
smart_str _modify_arg_string = {0};
if (days >= 0) {
smart_str_appendl(&_modify_arg_string, "+", 1);
}
smart_str_append_long(&_modify_arg_string, days);
smart_str_appendl(&_modify_arg_string, " days", 5);
ZSTR_VAL(_modify_arg_string.s)[ZSTR_LEN(_modify_arg_string.s)] = '\0';
ZVAL_STR(&_modify_args[0], _modify_arg_string.s);
call_object_method(&datetime, "modify", 1, _modify_args, &_modify_result);
zval_ptr_dtor(&datetime);
zval _set_time_args[3], _set_time_result;
ZVAL_LONG(&_set_time_args[0], (zend_long)hours);
ZVAL_LONG(&_set_time_args[1], (zend_long)minutes);
ZVAL_LONG(&_set_time_args[2], (zend_long)seconds);
call_object_method(&_modify_result, "setTime", 3, _set_time_args, &_set_time_result);
zval_ptr_dtor(&_modify_result);
zval _format_args[1], _format_result;
ZVAL_STRING(&_format_args[0], "U");
call_object_method(&_set_time_result, "format", 1, _format_args, &_format_result);
zval_ptr_dtor(&_set_time_result);
zend_long timestamp = ZEND_STRTOL(Z_STRVAL(_format_result), NULL ,10);
zval_ptr_dtor(&_format_result);
return timestamp;
}
/* }}} */
/* {{{ */
unsigned int directory_exists(const char *path) {
zval dir_exists;
#if PHP_VERSION_ID >= 80100
zend_string *zs_path = zend_string_init(path, strlen(path), 0);
php_stat(zs_path, FS_IS_DIR, &dir_exists);
zend_string_release(zs_path);
#else
php_stat(path, strlen(path), FS_IS_DIR, &dir_exists);
#endif
if (Z_TYPE(dir_exists) == IS_FALSE) {
zval_ptr_dtor(&dir_exists);
return XLSWRITER_FALSE;
}
zval_ptr_dtor(&dir_exists);
return XLSWRITER_TRUE;
}
/* }}} */
/* {{{ */
unsigned int file_exists(const char *path) {
zval file_exists;
#if PHP_VERSION_ID >= 80100
zend_string *zs_path = zend_string_init(path, strlen(path), 0);
php_stat(zs_path, FS_IS_FILE, &file_exists);
zend_string_release(zs_path);
#else
php_stat(path, strlen(path), FS_IS_FILE, &file_exists);
#endif
if (Z_TYPE(file_exists) == IS_FALSE) {
zval_ptr_dtor(&file_exists);
return XLSWRITER_FALSE;
}
zval_ptr_dtor(&file_exists);
return XLSWRITER_TRUE;
}
/* }}} */

123
kernel/help.dep Normal file
View File

@ -0,0 +1,123 @@
kernel/help.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/help.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h \
/usr/local/etc/php/include/php/ext/standard/php_math.h \
/usr/local/etc/php/include/php/ext/standard/php_filestat.h

470
kernel/read.c Normal file
View File

@ -0,0 +1,470 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
#include "ext/date/php_date.h"
/* {{{ */
xlsxioreader file_open(const char *directory, const char *file_name) {
char *path = (char *)emalloc(strlen(directory) + strlen(file_name) + 2);
xlsxioreader file;
strcpy(path, directory);
strcat(path, "/");
strcat(path, file_name);
if (file_exists(path) == XLSWRITER_FALSE) {
zend_string *message = char_join_to_zend_str("File not found, file path:", path);
zend_throw_exception(vtiful_exception_ce, ZSTR_VAL(message), 121);
zend_string_free(message);
efree(path);
return NULL;
}
if ((file = xlsxioread_open(path)) == NULL) {
zend_string *message = char_join_to_zend_str("Failed to open file, file path:", path);
zend_throw_exception(vtiful_exception_ce, ZSTR_VAL(message), 100);
zend_string_free(message);
efree(path);
return NULL;
}
efree(path);
return file;
}
/* }}} */
/* {{{ */
xlsxioreadersheet sheet_open(xlsxioreader file_t, const zend_string *zs_sheet_name_t, const zend_long zl_flag)
{
if (zs_sheet_name_t == NULL) {
return xlsxioread_sheet_open(file_t, NULL, zl_flag);
}
return xlsxioread_sheet_open(file_t, ZSTR_VAL(zs_sheet_name_t), zl_flag);
}
/* }}} */
/* {{{ */
void sheet_list(xlsxioreader file_t, zval *zv_result_t)
{
const char *sheet_name = NULL;
xlsxioreadersheetlist sheet_list = NULL;
if (Z_TYPE_P(zv_result_t) != IS_ARRAY) {
array_init(zv_result_t);
}
if ((sheet_list = xlsxioread_sheetlist_open(file_t)) == NULL) {
return;
}
while ((sheet_name = xlsxioread_sheetlist_next(sheet_list)) != NULL) {
add_next_index_stringl(zv_result_t, sheet_name, strlen(sheet_name));
}
xlsxioread_sheetlist_close(sheet_list);
}
/* }}} */
/* {{{ */
int is_number(const char *value)
{
if (strspn(value, ".0123456789") == strlen(value)) {
return XLSWRITER_TRUE;
}
return XLSWRITER_FALSE;
}
/* }}} */
/* {{{ */
void data_to_null(zval *zv_result_t)
{
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
add_next_index_null(zv_result_t);
} else {
ZVAL_NULL(zv_result_t);
}
}
/* }}} */
/* {{{ */
void data_to_custom_type(const char *string_value, const size_t string_value_length, const zend_ulong type, zval *zv_result_t, const zend_ulong zv_hashtable_index)
{
if (type == 0) {
goto STRING;
}
if (!is_number(string_value)) {
goto STRING;
}
if (type & READ_TYPE_DATETIME) {
if (string_value_length == 0) {
data_to_null(zv_result_t);
return;
}
zend_long timestamp = date_double_to_timestamp(zend_strtod(string_value, NULL));
// GMT
// if (value != 0) {
// timestamp = (value - 25569) * 86400;
// }
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
add_index_long(zv_result_t, zv_hashtable_index, timestamp);
} else {
ZVAL_LONG(zv_result_t, timestamp);
}
return;
}
if (type & READ_TYPE_DOUBLE) {
if (string_value_length == 0) {
data_to_null(zv_result_t);
return;
}
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
add_index_double(zv_result_t, zv_hashtable_index,strtod(string_value, NULL));
} else {
ZVAL_DOUBLE(zv_result_t, strtod(string_value, NULL));
}
return;
}
if (type & READ_TYPE_INT) {
if (string_value_length == 0) {
data_to_null(zv_result_t);
return;
}
zend_long _long_value;
sscanf(string_value, ZEND_LONG_FMT, &_long_value);
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
add_index_long(zv_result_t, zv_hashtable_index, _long_value);
} else {
ZVAL_LONG(zv_result_t, _long_value);
}
return;
}
STRING:
{
if (!(type & READ_TYPE_STRING)) {
zend_long _long = 0; double _double = 0;
is_numeric_string(string_value, string_value_length, &_long, &_double, 0);
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
if (_double > 0 && _double <= (double)ZEND_LONG_MAX) {
add_index_double(zv_result_t, zv_hashtable_index, _double);
return;
}
if (_long > 0 && _long <= ZEND_LONG_MAX) {
add_index_long(zv_result_t, zv_hashtable_index, _long);
return;
}
} else {
if (_double > 0 && _double <= (double)ZEND_LONG_MAX) {
ZVAL_DOUBLE(zv_result_t, _double);
return;
}
if (_long > 0 && _long <= ZEND_LONG_MAX) {
ZVAL_LONG(zv_result_t, _long);
return;
}
}
}
if (Z_TYPE_P(zv_result_t) == IS_ARRAY) {
add_index_stringl(zv_result_t, zv_hashtable_index, string_value, string_value_length);
return;
}
ZVAL_STRINGL(zv_result_t, string_value, string_value_length);
}
}
/* }}} */
/* {{{ */
int sheet_read_row(xlsxioreadersheet sheet_t)
{
return xlsxioread_sheet_next_row(sheet_t);
}
/* }}} */
/* {{{ */
unsigned int load_sheet_current_row_data(xlsxioreadersheet sheet_t, zval *zv_result_t, zval *zv_type_arr_t, zend_long data_type_default, unsigned int flag)
{
zend_long _type, _cell_index = 0, _last_cell_index = 0;
zend_bool _skip_empty_value_cell = 0;
zend_array *_za_type_t = NULL;
char *_string_value = NULL;
zval *_current_type = NULL;
if (flag && !sheet_read_row(sheet_t)) {
return XLSWRITER_FALSE;
}
if (xlsxioread_sheet_flags(sheet_t) & SKIP_EMPTY_VALUE) {
_skip_empty_value_cell = 1;
}
if (Z_TYPE_P(zv_result_t) != IS_ARRAY) {
array_init(zv_result_t);
}
if (zv_type_arr_t != NULL && Z_TYPE_P(zv_type_arr_t) == IS_ARRAY) {
_za_type_t = Z_ARR_P(zv_type_arr_t);
}
while ((_string_value = xlsxioread_sheet_next_cell(sheet_t)) != NULL)
{
size_t _string_value_length = strlen(_string_value);
_type = READ_TYPE_EMPTY;
_last_cell_index = xlsxioread_sheet_last_column_index(sheet_t) - 1;
if (_last_cell_index < 0 || (_skip_empty_value_cell && _string_value_length == 0)) {
goto FREE_TMP_VALUE;
}
if (_last_cell_index > _cell_index) {
_cell_index = _last_cell_index;
}
if (_za_type_t != NULL) {
_current_type = zend_hash_index_find(_za_type_t, _cell_index);
if (_current_type != NULL && Z_TYPE_P(_current_type) == IS_LONG) {
_type = Z_LVAL_P(_current_type);
} else {
_type = data_type_default;
}
} else {
_type = data_type_default;
}
data_to_custom_type(_string_value, _string_value_length, _type, zv_result_t, _cell_index);
FREE_TMP_VALUE:
++_cell_index;
free(_string_value);
}
return XLSWRITER_TRUE;
}
/* }}} */
/* {{{ */
int sheet_row_callback (size_t row, size_t max_col, void* callback_data)
{
if (callback_data == NULL) {
return FAILURE;
}
xls_read_callback_data *_callback_data = (xls_read_callback_data *)callback_data;
zval args[3], retval;
_callback_data->fci->retval = &retval;
_callback_data->fci->params = args;
_callback_data->fci->param_count = 3;
ZVAL_LONG(&args[0], (row - 1));
ZVAL_LONG(&args[1], (max_col - 1));
ZVAL_STRING(&args[2], "XLSX_ROW_END");
zend_call_function(_callback_data->fci, _callback_data->fci_cache);
zval_ptr_dtor(&args[2]);
zval_ptr_dtor(&retval);
return SUCCESS;
}
/* }}} */
/* {{{ */
int sheet_cell_callback (size_t row, size_t col, const char *value, void *callback_data)
{
size_t _value_length = 0;
if (value != NULL) {
_value_length = strlen(value);
}
if (callback_data == NULL) {
return FAILURE;
}
xls_read_callback_data *_callback_data = (xls_read_callback_data *)callback_data;
if (_callback_data->fci == NULL || _callback_data->fci_cache == NULL) {
return FAILURE;
}
zval args[3], retval;
_callback_data->fci->retval = &retval;
_callback_data->fci->params = args;
_callback_data->fci->param_count = 3;
ZVAL_LONG(&args[0], (row - 1));
ZVAL_LONG(&args[1], (col - 1));
ZVAL_NULL(&args[2]);
if (value == NULL) {
goto CALL_USER_FUNCTION;
}
if (Z_TYPE_P(_callback_data->zv_type_t) != IS_ARRAY && _callback_data->data_type_default == READ_TYPE_EMPTY) {
zend_long _long = 0; double _double = 0;
if (is_numeric_string(value, _value_length, &_long, &_double, 0)) {
if (_double > 0) {
ZVAL_DOUBLE(&args[2], _double);
} else {
ZVAL_LONG(&args[2], _long);
}
} else {
ZVAL_STRINGL(&args[2], value, _value_length);
}
}
if (Z_TYPE_P(_callback_data->zv_type_t) != IS_ARRAY && _callback_data->data_type_default != READ_TYPE_EMPTY) {
data_to_custom_type(value, _value_length, _callback_data->data_type_default, &args[2], 0);
}
if (Z_TYPE_P(_callback_data->zv_type_t) == IS_ARRAY) {
zval *_current_type = NULL;
zend_ulong _type = READ_TYPE_EMPTY;
if ((_current_type = zend_hash_index_find(Z_ARR_P(_callback_data->zv_type_t), (col - 1))) != NULL) {
if (Z_TYPE_P(_current_type) == IS_LONG) {
_type = Z_LVAL_P(_current_type);
}
}
data_to_custom_type(value, _value_length, _type, &args[2], 0);
}
CALL_USER_FUNCTION:
zend_call_function(_callback_data->fci, _callback_data->fci_cache);
zval_ptr_dtor(&args[2]);
zval_ptr_dtor(&retval);
return SUCCESS;
}
/* }}} */
/* {{{ */
unsigned int load_sheet_current_row_data_callback (zend_string *zs_sheet_name_t, xlsxioreader file_t, void *callback_data)
{
if (zs_sheet_name_t == NULL) {
return xlsxioread_process(file_t, NULL, XLSXIOREAD_SKIP_NONE, sheet_cell_callback, sheet_row_callback, callback_data);
}
return xlsxioread_process(file_t, ZSTR_VAL(zs_sheet_name_t), XLSXIOREAD_SKIP_NONE, sheet_cell_callback, sheet_row_callback, callback_data);
}
/* }}} */
/* {{{ */
void load_sheet_row_data (xlsxioreadersheet sheet_t, zend_long sheet_flag, zval *zv_type_t, zend_long data_type_default, zval *zv_result_t)
{
size_t row_index = 0;
do {
load_sheet_current_row_data(sheet_t, zv_result_t, zv_type_t, data_type_default, READ_ROW);
if (row_index == xlsxioread_sheet_last_row_index(sheet_t)) {
return;
}
row_index = xlsxioread_sheet_last_row_index(sheet_t);
if (sheet_flag & XLSXIOREAD_SKIP_EMPTY_ROWS
&& Z_TYPE_P(zv_result_t) == IS_ARRAY
&& zend_hash_num_elements(Z_ARR_P(zv_result_t)) == 0) {
continue;
}
return;
} while (1);
}
/* }}} */
/* {{{ */
void load_sheet_all_data (xlsxioreadersheet sheet_t, zend_long sheet_flag, zval *zv_type_t, zend_long data_type_default, zval *zv_result_t)
{
if (Z_TYPE_P(zv_result_t) != IS_ARRAY) {
array_init(zv_result_t);
}
while (sheet_read_row(sheet_t))
{
zval _zv_tmp_row;
ZVAL_NULL(&_zv_tmp_row);
load_sheet_current_row_data(sheet_t, &_zv_tmp_row, zv_type_t, data_type_default, READ_SKIP_ROW);
if (sheet_flag & XLSXIOREAD_SKIP_EMPTY_ROWS
&& Z_TYPE(_zv_tmp_row) == IS_ARRAY
&& zend_hash_num_elements(Z_ARR(_zv_tmp_row)) == 0) {
zval_ptr_dtor(&_zv_tmp_row);
continue;
}
add_next_index_zval(zv_result_t, &_zv_tmp_row);
}
}
/* }}} */
void skip_rows(xlsxioreadersheet sheet_t, zval *zv_type_t, zend_long data_type_default, zend_long zl_skip_row)
{
while (sheet_read_row(sheet_t))
{
zval _zv_tmp_row;
ZVAL_NULL(&_zv_tmp_row);
if (xlsxioread_sheet_last_row_index(sheet_t) < zl_skip_row) {
sheet_read_row(sheet_t);
}
load_sheet_current_row_data(sheet_t, &_zv_tmp_row, zv_type_t, data_type_default, READ_SKIP_ROW);
zval_ptr_dtor(&_zv_tmp_row);
if (xlsxioread_sheet_last_row_index(sheet_t) >= zl_skip_row) {
break;
}
}
}

121
kernel/read.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/read.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/read.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

86
kernel/resource.c Normal file
View File

@ -0,0 +1,86 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
/* {{{ */
xls_resource_write_t * zval_get_resource(zval *handle)
{
xls_resource_write_t *res;
if((res = (xls_resource_write_t *)zend_fetch_resource(Z_RES_P(handle), VTIFUL_RESOURCE_NAME, le_xls_writer)) == NULL) {
zend_throw_exception(vtiful_exception_ce, "XLS resources resolution fail", 210);
}
return res;
}
/* }}} */
/* {{{ */
lxw_format * zval_get_format(zval *handle)
{
lxw_format *res = NULL;
if (handle == NULL) {
return NULL;
}
if (zval_get_type(handle) != IS_RESOURCE) {
return NULL;
}
if((res = (lxw_format *)zend_fetch_resource(Z_RES_P(handle), VTIFUL_RESOURCE_NAME, le_xls_writer)) == NULL) {
zend_throw_exception(vtiful_exception_ce, "format resources resolution fail", 210);
}
return res;
}
/* }}} */
/* {{{ */
xls_resource_chart_t *zval_get_chart(zval *resource)
{
xls_resource_chart_t *res;
if((res = (xls_resource_chart_t *)zend_fetch_resource(Z_RES_P(resource), VTIFUL_RESOURCE_NAME, le_xls_writer)) == NULL) {
zend_throw_exception(vtiful_exception_ce, "chart resources resolution fail", 210);
}
return res;
}
/* }}} */
/* {{{ */
lxw_rich_string_tuple *zval_get_rich_string(zval *resource)
{
lxw_rich_string_tuple *res;
if((res = (lxw_rich_string_tuple *)zend_fetch_resource(Z_RES_P(resource), VTIFUL_RESOURCE_NAME, le_xls_writer)) == NULL) {
zend_throw_exception(vtiful_exception_ce, "rich string resources resolution fail", 210);
}
return res;
}
/* }}} */
/* {{{ */
lxw_data_validation *zval_get_validation(zval *resource)
{
lxw_data_validation *res;
if((res = (lxw_data_validation *)zend_fetch_resource(Z_RES_P(resource), VTIFUL_RESOURCE_NAME, le_xls_writer)) == NULL) {
zend_throw_exception(vtiful_exception_ce, "validation resources resolution fail", 210);
}
return res;
}
/* }}} */

121
kernel/resource.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/resource.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/resource.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

125
kernel/rich_string.c Normal file
View File

@ -0,0 +1,125 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
zend_class_entry *vtiful_rich_string_ce;
/* {{{ rich_string_objects_new
*/
static zend_object_handlers rich_string_handlers;
static zend_always_inline void *vtiful_rich_string_object_alloc(size_t obj_size, zend_class_entry *ce) {
void *obj = emalloc(obj_size);
memset(obj, 0, obj_size);
return obj;
}
PHP_VTIFUL_API zend_object *rich_string_objects_new(zend_class_entry *ce)
{
rich_string_object *rich_string = vtiful_rich_string_object_alloc(sizeof(rich_string_object), ce);
zend_object_std_init(&rich_string->zo, ce);
object_properties_init(&rich_string->zo, ce);
rich_string->ptr.tuple = NULL;
rich_string->zo.handlers = &rich_string_handlers;
return &rich_string->zo;
}
/* }}} */
/* {{{ rich_string_objects_free
*/
static void rich_string_objects_free(zend_object *object)
{
rich_string_object *intern = php_vtiful_rich_string_fetch_object(object);
if (intern->ptr.tuple != NULL) {
efree(intern->ptr.tuple);
intern->ptr.tuple = NULL;
}
zend_object_std_dtor(&intern->zo);
}
/* }}} */
/* {{{ ARG_INFO
*/
ZEND_BEGIN_ARG_INFO_EX(rich_string_construct_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, text)
ZEND_ARG_INFO(0, format_handle)
ZEND_END_ARG_INFO()
/* }}} */
/** {{{ \Vtiful\Kernel\RichString::__construct(string $text, resource $format)
*/
PHP_METHOD(vtiful_rich_string, __construct)
{
zend_string *text = NULL;
zval *format_handle = NULL;
rich_string_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 2)
Z_PARAM_STR(text)
Z_PARAM_OPTIONAL
Z_PARAM_RESOURCE_OR_NULL(format_handle)
ZEND_PARSE_PARAMETERS_END();
ZVAL_COPY(return_value, getThis());
obj = Z_RICH_STR_P(getThis());
if (obj->ptr.tuple != NULL) {
return;
}
lxw_rich_string_tuple *instance = (lxw_rich_string_tuple *)ecalloc(1, sizeof(lxw_rich_string_tuple));
zend_string *zstr = zend_string_copy(text);
if (format_handle == NULL) {
instance->format = NULL;
instance->string = ZSTR_VAL(zstr);
} else {
instance->format = zval_get_format(format_handle);
instance->string = ZSTR_VAL(zstr);
}
obj->ptr.tuple = instance;
}
/* }}} */
/** {{{ rich_string_methods
*/
zend_function_entry rich_string_methods[] = {
PHP_ME(vtiful_rich_string, __construct, rich_string_construct_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
/** {{{ VTIFUL_STARTUP_FUNCTION
*/
VTIFUL_STARTUP_FUNCTION(rich_string) {
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "RichString", rich_string_methods);
ce.create_object = rich_string_objects_new;
vtiful_rich_string_ce = zend_register_internal_class(&ce);
memcpy(&rich_string_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
rich_string_handlers.offset = XtOffsetOf(rich_string_object, zo);
rich_string_handlers.free_obj = rich_string_objects_free;
return SUCCESS;
}
/* }}} */

121
kernel/rich_string.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/rich_string.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/rich_string.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

826
kernel/validation.c Normal file
View File

@ -0,0 +1,826 @@
/*
+----------------------------------------------------------------------+
| XlsWriter Extension |
+----------------------------------------------------------------------+
| Copyright (c) 2017-2018 The Viest |
+----------------------------------------------------------------------+
| http://www.viest.me |
+----------------------------------------------------------------------+
| Author: viest <dev@service.viest.me> |
+----------------------------------------------------------------------+
*/
#include "xlswriter.h"
zend_class_entry *vtiful_validation_ce;
/* {{{ validation_objects_new
*/
static zend_object_handlers validation_handlers;
static zend_always_inline void *vtiful_validation_object_alloc(size_t obj_size, zend_class_entry *ce) {
void *obj = emalloc(obj_size);
memset(obj, 0, obj_size);
return obj;
}
PHP_VTIFUL_API zend_object *validation_objects_new(zend_class_entry *ce)
{
validation_object *validation = vtiful_validation_object_alloc(sizeof(validation_object), ce);
zend_object_std_init(&validation->zo, ce);
object_properties_init(&validation->zo, ce);
validation->ptr.validation = NULL;
validation->zo.handlers = &validation_handlers;
return &validation->zo;
}
/* }}} */
/* {{{ validation_objects_free
*/
static void validation_objects_free(zend_object *object)
{
validation_object *intern = php_vtiful_validation_fetch_object(object);
if (intern->ptr.validation->value_list != NULL) {
int index = 0;
do {
if (intern->ptr.validation->value_list[index] == NULL) {
break;
}
efree(intern->ptr.validation->value_list[index]);
index++;
} while (1);
efree(intern->ptr.validation->value_list);
}
if (intern->ptr.validation != NULL) {
efree(intern->ptr.validation);
}
zend_object_std_dtor(&intern->zo);
}
/* }}} */
/* {{{ ARG_INFO
*/
ZEND_BEGIN_ARG_INFO_EX(validation_construct_arginfo, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_type_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_criteria_type_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_ignore_blank_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, ignore_blank)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_show_input_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, show_input)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_show_error_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, show_error)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_error_type_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, error_type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_dropdown_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, dropdown)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_value_number_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, value_number)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_value_formula_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, value_formula)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_value_list_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, value_list)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_value_date_time_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, timestamp)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_minimum_number_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, minimum_number)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_minimum_formula_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, minimum_formula)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_minimum_datetime_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, timestamp)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_maximum_number_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, maximum_number)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_maximum_formula_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, maximum_formula)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_maximum_datetime_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, maximum_datetime)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_input_title_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, input_title)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_input_message_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, input_message)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_error_title_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, error_titile)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_error_message_arginfo, 0, 0, 1)
ZEND_ARG_INFO(0, error_message)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(validation_to_resource_arginfo, 0, 0, 1)
ZEND_END_ARG_INFO()
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::__construct()
*/
PHP_METHOD(vtiful_validation, __construct)
{
validation_object *obj = NULL;
ZVAL_COPY(return_value, getThis());
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
obj->ptr.validation = ecalloc(1, sizeof(lxw_data_validation));
}
obj->ptr.validation->value_list = NULL;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::validationType()
*/
PHP_METHOD(vtiful_validation, validationType)
{
zend_long zl_validate_type = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(zl_validate_type)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
if (zl_validate_type < LXW_VALIDATION_TYPE_NONE || zl_validate_type > LXW_VALIDATION_TYPE_ANY) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->validate = zl_validate_type;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::criteriaType()
*/
PHP_METHOD(vtiful_validation, criteriaType)
{
zend_long zl_criteria_type = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(zl_criteria_type)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
if (zl_criteria_type < LXW_VALIDATION_CRITERIA_NONE || zl_criteria_type > LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->criteria = zl_criteria_type;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::ignoreBlank()
*/
PHP_METHOD(vtiful_validation, ignoreBlank)
{
zend_bool zb_ignore_blank = 1;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_BOOL(zb_ignore_blank)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
if (zb_ignore_blank) {
obj->ptr.validation->ignore_blank = LXW_VALIDATION_ON;
return;
}
obj->ptr.validation->ignore_blank = LXW_VALIDATION_OFF;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::showInput()
*/
PHP_METHOD(vtiful_validation, showInput)
{
zend_bool zb_show_input = 1;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_BOOL(zb_show_input)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
if (zb_show_input) {
obj->ptr.validation->show_input = LXW_VALIDATION_ON;
return;
}
obj->ptr.validation->show_input = LXW_VALIDATION_OFF;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::showError()
*/
PHP_METHOD(vtiful_validation, showError)
{
zend_bool zb_show_error = 1;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_BOOL(zb_show_error)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
if (zb_show_error) {
obj->ptr.validation->show_error = LXW_VALIDATION_ON;
return;
}
obj->ptr.validation->show_error = LXW_VALIDATION_OFF;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::errorType()
*/
PHP_METHOD(vtiful_validation, errorType)
{
zend_long zl_error_type = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(zl_error_type)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
if (zl_error_type < LXW_VALIDATION_ERROR_TYPE_STOP || zl_error_type > LXW_VALIDATION_ERROR_TYPE_INFORMATION) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->error_type = zl_error_type;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::dropdown()
*/
PHP_METHOD(vtiful_validation, dropdown)
{
zend_bool zb_dropdown = 1;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_BOOL(zb_dropdown)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
if (zb_dropdown) {
obj->ptr.validation->dropdown = LXW_VALIDATION_ON;
return;
}
obj->ptr.validation->dropdown = LXW_VALIDATION_OFF;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::valueNumber()
*/
PHP_METHOD(vtiful_validation, valueNumber)
{
zend_long zl_value_number = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(zl_value_number)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->value_number = zl_value_number;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::valueFormula()
*/
PHP_METHOD(vtiful_validation, valueFormula)
{
zend_string *zs_value_formula = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_value_formula)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->value_formula = ZSTR_VAL(zs_value_formula);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::valueList()
*/
PHP_METHOD(vtiful_validation, valueList)
{
int index = 0;
char **list = NULL;
zval *data;
zval *zv_value_list = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_ARRAY(zv_value_list)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
if (obj->ptr.validation->value_list != NULL) {
do {
if (obj->ptr.validation->value_list[index] == NULL) {
break;
}
efree(obj->ptr.validation->value_list[index]);
index++;
} while (1);
efree(obj->ptr.validation->value_list);
obj->ptr.validation->value_list = NULL;
}
ZVAL_COPY(return_value, getThis());
zend_array *za_value_list = Z_ARR_P(zv_value_list);
ZEND_HASH_FOREACH_VAL(za_value_list, data) {
if (Z_TYPE_P(data) != IS_STRING) {
zend_throw_exception(vtiful_exception_ce, "Arrays can only consist of strings.", 300);
return;
}
if (Z_STRLEN_P(data) == 0 ) {
zend_throw_exception(vtiful_exception_ce, "Array value is empty string.", 301);
return;
}
} ZEND_HASH_FOREACH_END();
index = 0;
list = ecalloc(za_value_list->nNumOfElements + 1, sizeof(char *));
ZEND_HASH_FOREACH_VAL(za_value_list, data) {
list[index] = ecalloc(1, Z_STRLEN_P(data) + 1);
strcpy(list[index], Z_STRVAL_P(data));
index++;
} ZEND_HASH_FOREACH_END();
list[index] = NULL;
obj->ptr.validation->value_list = list;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::valueDatetime(int $timestamp)
*/
PHP_METHOD(vtiful_validation, valueDatetime)
{
zend_long timestamp = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(timestamp)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
obj->ptr.validation->value_datetime = timestamp_to_datetime(timestamp);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::minimumNumber(double $minimumNumber)
*/
PHP_METHOD(vtiful_validation, minimumNumber)
{
double minimum_number = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_DOUBLE(minimum_number)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->minimum_number = minimum_number;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::minimumFormula()
*/
PHP_METHOD(vtiful_validation, minimumFormula)
{
zend_string *zs_minimum_formula = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_minimum_formula)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->minimum_formula = ZSTR_VAL(zs_minimum_formula);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::minimumDatetime(int $timestamp)
*/
PHP_METHOD(vtiful_validation, minimumDatetime)
{
zend_long timestamp = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(timestamp)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
obj->ptr.validation->minimum_datetime = timestamp_to_datetime(timestamp);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::maximumNumber(double $maximumNumber)
*/
PHP_METHOD(vtiful_validation, maximumNumber)
{
double maximum_number = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_DOUBLE(maximum_number)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->maximum_number = maximum_number;
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::maximumFormula()
*/
PHP_METHOD(vtiful_validation, maximumFormula)
{
zend_string *zs_maximum_formula = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_maximum_formula)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->maximum_formula = ZSTR_VAL(zs_maximum_formula);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::maximumDatetime(int $timestamp)
*/
PHP_METHOD(vtiful_validation, maximumDatetime)
{
zend_long timestamp = 0;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_LONG(timestamp)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
obj->ptr.validation->maximum_datetime = timestamp_to_datetime(timestamp);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::inputTitle()
*/
PHP_METHOD(vtiful_validation, inputTitle)
{
zend_string *zs_input_title = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_input_title)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->input_title = ZSTR_VAL(zs_input_title);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::inputMessage()
*/
PHP_METHOD(vtiful_validation, inputMessage)
{
zend_string *zs_input_message = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_input_message)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->input_message = ZSTR_VAL(zs_input_message);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::errorTitle()
*/
PHP_METHOD(vtiful_validation, errorTitle)
{
zend_string *zs_error_title = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_error_title)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->error_title = ZSTR_VAL(zs_error_title);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::errorMessage()
*/
PHP_METHOD(vtiful_validation, errorMessage)
{
zend_string *zs_error_message = NULL;
validation_object *obj = NULL;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_STR(zs_error_message)
ZEND_PARSE_PARAMETERS_END();
obj = Z_VALIDATION_P(getThis());
if (obj->ptr.validation == NULL) {
RETURN_NULL();
}
ZVAL_COPY(return_value, getThis());
obj->ptr.validation->error_message = ZSTR_VAL(zs_error_message);
}
/* }}} */
/** {{{ \Vtiful\Kernel\Validation::toResource()
*/
PHP_METHOD(vtiful_validation, toResource)
{
validation_object *obj = Z_VALIDATION_P(getThis());
RETURN_RES(zend_register_resource(obj->ptr.validation, le_xls_writer));
}
/* }}} */
/** {{{ validation_methods
*/
zend_function_entry validation_methods[] = {
PHP_ME(vtiful_validation, __construct, validation_construct_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, validationType, validation_type_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, criteriaType, validation_criteria_type_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, ignoreBlank, validation_ignore_blank_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, showInput, validation_show_input_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, showError , validation_show_error_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, errorType , validation_error_type_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, dropdown , validation_dropdown_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, valueNumber, validation_value_number_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, valueFormula, validation_value_formula_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, valueList, validation_value_list_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, valueDatetime, validation_value_date_time_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, minimumNumber, validation_minimum_number_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, minimumFormula, validation_minimum_formula_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, minimumDatetime, validation_minimum_datetime_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, maximumNumber, validation_maximum_number_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, maximumFormula, validation_maximum_formula_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, maximumDatetime, validation_maximum_datetime_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, inputTitle, validation_input_title_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, inputMessage, validation_input_message_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, errorTitle, validation_error_title_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, errorMessage, validation_error_message_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(vtiful_validation, toResource, validation_to_resource_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
/** {{{ VTIFUL_STARTUP_FUNCTION
*/
VTIFUL_STARTUP_FUNCTION(validation) {
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "Validation", validation_methods);
ce.create_object = validation_objects_new;
vtiful_validation_ce = zend_register_internal_class(&ce);
memcpy(&validation_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
validation_handlers.offset = XtOffsetOf(validation_object, zo);
validation_handlers.free_obj = validation_objects_free;
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_INTEGER", LXW_VALIDATION_TYPE_INTEGER)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_INTEGER_FORMULA", LXW_VALIDATION_TYPE_INTEGER_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_DECIMAL", LXW_VALIDATION_TYPE_DECIMAL)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_DECIMAL_FORMULA", LXW_VALIDATION_TYPE_DECIMAL_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_LIST", LXW_VALIDATION_TYPE_LIST)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_LIST_FORMULA", LXW_VALIDATION_TYPE_LIST_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_DATE", LXW_VALIDATION_TYPE_DATE)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_DATE_FORMULA", LXW_VALIDATION_TYPE_DATE_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_DATE_NUMBER", LXW_VALIDATION_TYPE_DATE_NUMBER)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_TIME", LXW_VALIDATION_TYPE_TIME)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_TIME_FORMULA", LXW_VALIDATION_TYPE_TIME_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_TIME_NUMBER", LXW_VALIDATION_TYPE_TIME_NUMBER)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_LENGTH", LXW_VALIDATION_TYPE_LENGTH)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_LENGTH_FORMULA", LXW_VALIDATION_TYPE_LENGTH_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_CUSTOM_FORMULA", LXW_VALIDATION_TYPE_CUSTOM_FORMULA)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "TYPE_ANY", LXW_VALIDATION_TYPE_ANY)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_BETWEEN", LXW_VALIDATION_CRITERIA_BETWEEN)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_NOT_BETWEEN", LXW_VALIDATION_CRITERIA_NOT_BETWEEN)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_EQUAL_TO", LXW_VALIDATION_CRITERIA_EQUAL_TO)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_NOT_EQUAL_TO", LXW_VALIDATION_CRITERIA_NOT_EQUAL_TO)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_GREATER_THAN", LXW_VALIDATION_CRITERIA_GREATER_THAN)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_LESS_THAN", LXW_VALIDATION_CRITERIA_LESS_THAN)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_GREATER_THAN_OR_EQUAL_TO", LXW_VALIDATION_CRITERIA_GREATER_THAN_OR_EQUAL_TO)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "CRITERIA_LESS_THAN_OR_EQUAL_TO", LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "ERROR_TYPE_STOP", LXW_VALIDATION_ERROR_TYPE_STOP)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "ERROR_TYPE_WARNING", LXW_VALIDATION_ERROR_TYPE_WARNING)
REGISTER_CLASS_CONST_LONG(vtiful_validation_ce, "ERROR_TYPE_INFORMATION", LXW_VALIDATION_ERROR_TYPE_INFORMATION)
return SUCCESS;
}
/* }}} */

121
kernel/validation.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/validation.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/validation.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h

1231
kernel/write.c Normal file

File diff suppressed because it is too large Load Diff

121
kernel/write.dep Normal file
View File

@ -0,0 +1,121 @@
kernel/write.lo: \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/kernel/write.c \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/xlswriter.h \
config.h /usr/local/etc/php/include/php/main/php.h \
/usr/local/etc/php/include/php/main/php_version.h \
/usr/local/etc/php/include/php/Zend/zend.h \
/usr/local/etc/php/include/php/Zend/zend_types.h \
/usr/local/etc/php/include/php/Zend/zend_portability.h \
/usr/local/etc/php/include/php/Zend/zend_config.h \
/usr/local/etc/php/include/php/main/../main/php_config.h \
/usr/local/etc/php/include/php/Zend/../TSRM/TSRM.h \
/usr/local/etc/php/include/php/main/php_config.h \
/usr/local/etc/php/include/php/Zend/zend_range_check.h \
/usr/local/etc/php/include/php/Zend/zend_long.h \
/usr/local/etc/php/include/php/Zend/zend_map_ptr.h \
/usr/local/etc/php/include/php/Zend/zend_errors.h \
/usr/local/etc/php/include/php/Zend/zend_alloc.h \
/usr/local/etc/php/include/php/Zend/zend_alloc_sizes.h \
/usr/local/etc/php/include/php/Zend/zend_llist.h \
/usr/local/etc/php/include/php/Zend/zend_string.h \
/usr/local/etc/php/include/php/Zend/zend_hash.h \
/usr/local/etc/php/include/php/Zend/zend_sort.h \
/usr/local/etc/php/include/php/Zend/zend_ast.h \
/usr/local/etc/php/include/php/Zend/zend_gc.h \
/usr/local/etc/php/include/php/Zend/zend_hrtime.h \
/usr/local/etc/php/include/php/Zend/zend_variables.h \
/usr/local/etc/php/include/php/Zend/zend_iterators.h \
/usr/local/etc/php/include/php/Zend/zend_stream.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str_public.h \
/usr/local/etc/php/include/php/Zend/zend_smart_string_public.h \
/usr/local/etc/php/include/php/Zend/zend_signal.h \
/usr/local/etc/php/include/php/Zend/zend_max_execution_timer.h \
/usr/local/etc/php/include/php/Zend/zend_object_handlers.h \
/usr/local/etc/php/include/php/Zend/zend_operators.h \
/usr/local/etc/php/include/php/Zend/zend_strtod.h \
/usr/local/etc/php/include/php/Zend/zend_multiply.h \
/usr/local/etc/php/include/php/main/php_compat.h \
/usr/local/etc/php/include/php/Zend/zend_API.h \
/usr/local/etc/php/include/php/Zend/zend_modules.h \
/usr/local/etc/php/include/php/Zend/zend_compile.h \
/usr/local/etc/php/include/php/Zend/zend_globals.h \
/usr/local/etc/php/include/php/Zend/zend_globals_macros.h \
/usr/local/etc/php/include/php/Zend/zend_atomic.h \
/usr/local/etc/php/include/php/Zend/zend_stack.h \
/usr/local/etc/php/include/php/Zend/zend_ptr_stack.h \
/usr/local/etc/php/include/php/Zend/zend_objects.h \
/usr/local/etc/php/include/php/Zend/zend_objects_API.h \
/usr/local/etc/php/include/php/Zend/zend_float.h \
/usr/local/etc/php/include/php/Zend/zend_multibyte.h \
/usr/local/etc/php/include/php/Zend/zend_arena.h \
/usr/local/etc/php/include/php/Zend/zend_call_stack.h \
/usr/local/etc/php/include/php/Zend/zend_vm_opcodes.h \
/usr/local/etc/php/include/php/Zend/zend_build.h \
/usr/local/etc/php/include/php/Zend/zend_list.h \
/usr/local/etc/php/include/php/Zend/zend_execute.h \
/usr/local/etc/php/include/php/Zend/zend_type_info.h \
/usr/local/etc/php/include/php/main/build-defs.h \
/usr/local/etc/php/include/php/main/snprintf.h \
/usr/local/etc/php/include/php/main/spprintf.h \
/usr/local/etc/php/include/php/main/php_syslog.h \
/usr/local/etc/php/include/php/main/php_output.h \
/usr/local/etc/php/include/php/main/php_streams.h \
/usr/local/etc/php/include/php/main/streams/php_stream_context.h \
/usr/local/etc/php/include/php/main/streams/php_stream_filter_api.h \
/usr/local/etc/php/include/php/main/streams/php_stream_transport.h \
/usr/local/etc/php/include/php/main/streams/php_stream_plain_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_glob_wrapper.h \
/usr/local/etc/php/include/php/main/streams/php_stream_userspace.h \
/usr/local/etc/php/include/php/main/streams/php_stream_mmap.h \
/usr/local/etc/php/include/php/main/php_memory_streams.h \
/usr/local/etc/php/include/php/main/fopen_wrappers.h \
/usr/local/etc/php/include/php/main/php_globals.h \
/usr/local/etc/php/include/php/main/php_ini.h \
/usr/local/etc/php/include/php/Zend/zend_ini.h \
/usr/local/etc/php/include/php/Zend/zend_virtual_cwd.h \
/usr/local/etc/php/include/php/TSRM/TSRM.h \
/usr/local/etc/php/include/php/Zend/zend_constants.h \
/usr/local/etc/php/include/php/main/php_reentrancy.h \
/usr/local/etc/php/include/php/ext/date/php_date.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib.h \
/usr/local/etc/php/include/php/ext/date/lib/timelib_config.h \
/usr/local/etc/php/include/php/Zend/zend_smart_str.h \
/usr/local/etc/php/include/php/Zend/zend_exceptions.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/workbook.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/worksheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/shared_strings.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/common.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/queue.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/tree.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/hash_table.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/drawing.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/styles.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/utility.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/xmlwriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/relationships.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/chartsheet.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/packager.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/third_party/zip.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/app.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/core.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/custom.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/theme.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/content_types.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/vml.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/comment.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxwriter/include/xlsxwriter/metadata.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/common.h \
php_xlswriter.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/excel.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/validation.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/exception.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/format.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/chart.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/rich_string.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/help.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/library/libxlsxio/include/xlsxio_read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/read.h \
/Users/ykxiao/nginx/www/phpext/php-ext-xlswriter/include/csv.h