/* +----------------------------------------------------------------------+ | Copyright © The PHP Group and Contributors. | +----------------------------------------------------------------------+ | This source file is subject to the Modified BSD License that is | | bundled with this package in the file LICENSE, and is available | | through the World Wide Web at . | | | | SPDX-License-Identifier: BSD-3-Clause | +----------------------------------------------------------------------+ */ #ifndef PHP_XSL_H #define PHP_XSL_H extern zend_module_entry xsl_module_entry; #define phpext_xsl_ptr &xsl_module_entry #include "php_version.h" #define PHP_XSL_VERSION PHP_VERSION #ifdef ZTS #include "TSRM.h" #endif #include #include #include #include #include #ifdef HAVE_XSL_EXSLT #include #include #endif #include "ext/dom/xml_common.h" #include "ext/dom/xpath_callbacks.h" #include #include #define XSL_SECPREF_NONE 0 #define XSL_SECPREF_READ_FILE 2 #define XSL_SECPREF_WRITE_FILE 4 #define XSL_SECPREF_CREATE_DIRECTORY 8 #define XSL_SECPREF_READ_NETWORK 16 #define XSL_SECPREF_WRITE_NETWORK 32 /* Default == disable all write access */ #define XSL_SECPREF_DEFAULT (XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE) typedef struct xsl_object { void *ptr; HashTable *parameter; bool hasKeys; php_libxml_ref_obj *sheet_ref_obj; zend_long securityPrefs; php_dom_xpath_callbacks xpath_callbacks; php_libxml_node_object *doc; zend_string *profiling; zend_object std; } xsl_object; static inline xsl_object *php_xsl_fetch_object(zend_object *obj) { return ZEND_CONTAINER_OF(obj, xsl_object, std); } #define Z_XSL_P(zv) php_xsl_fetch_object(Z_OBJ_P((zv))) void php_xsl_set_object(zval *wrapper, void *obj); void xsl_free_sheet(xsl_object *intern); void xsl_objects_free_storage(zend_object *object); void xsl_ext_function_string_php(xmlXPathParserContextPtr ctxt, int nargs); void xsl_ext_function_object_php(xmlXPathParserContextPtr ctxt, int nargs); zval *xsl_prop_max_template_depth(zend_object *object); zval *xsl_prop_max_template_vars(zend_object *object); zval *xsl_prop_do_xinclude(zend_object *object); zval *xsl_prop_clone_document(zend_object *object); PHP_MINIT_FUNCTION(xsl); PHP_MSHUTDOWN_FUNCTION(xsl); PHP_RINIT_FUNCTION(xsl); PHP_RSHUTDOWN_FUNCTION(xsl); PHP_MINFO_FUNCTION(xsl); #endif /* PHP_XSL_H */