Line data Source code
1 : /*
2 : +----------------------------------------------------------------------+
3 : | COLOPL PHP Backwards Compatibility Extension. |
4 : +----------------------------------------------------------------------+
5 : | Copyright (c) COLOPL, Inc. |
6 : +----------------------------------------------------------------------+
7 : | This source file is subject to the BSD-3-Clause license that is |
8 : | bundled with this package in the file LICENSE. |
9 : +----------------------------------------------------------------------+
10 : | Author: Go Kudo <g-kudo@colopl.co.jp> |
11 : +----------------------------------------------------------------------+
12 : */
13 :
14 : #ifdef HAVE_CONFIG_H
15 : # include "config.h"
16 : #endif
17 :
18 : #include "php.h"
19 :
20 : #include "ext/standard/info.h"
21 :
22 : #include "php_colopl_bc.h"
23 : #if PHP_VERSION_ID < 80000
24 : # include "colopl_bc_legacy_arginfo.h"
25 : #else
26 : # include "colopl_bc_arginfo.h"
27 : #endif
28 :
29 : ZEND_DECLARE_MODULE_GLOBALS(colopl_bc);
30 :
31 : PHP_INI_BEGIN()
32 : STD_PHP_INI_ENTRY("colopl_bc.php74.compare_mode", "0", PHP_INI_ALL, OnUpdateCompareMode, php74_compare_mode, zend_colopl_bc_globals, colopl_bc_globals)
33 : STD_PHP_INI_ENTRY("colopl_bc.php74.sort_mode", "0", PHP_INI_ALL, OnUpdateSortMode, php74_sort_mode, zend_colopl_bc_globals, colopl_bc_globals)
34 : PHP_INI_END()
35 :
36 266 : PHP_MINIT_FUNCTION(colopl_bc)
37 : {
38 : zend_function *fentry;
39 :
40 266 : REGISTER_INI_ENTRIES();
41 :
42 266 : register_colopl_bc_symbols(module_number);
43 :
44 266 : return SUCCESS;
45 : }
46 :
47 266 : PHP_MSHUTDOWN_FUNCTION(colopl_bc)
48 : {
49 266 : UNREGISTER_INI_ENTRIES();
50 :
51 266 : return SUCCESS;
52 : }
53 :
54 266 : PHP_RINIT_FUNCTION(colopl_bc)
55 : {
56 : #if defined(ZTS) && defined(COMPILE_DL_COLOPL_BC)
57 132 : ZEND_TSRMLS_CACHE_UPDATE();
58 : #endif
59 :
60 266 : return SUCCESS;
61 : }
62 :
63 4 : PHP_MINFO_FUNCTION(colopl_bc)
64 : {
65 4 : php_info_print_table_start();
66 4 : php_info_print_table_header(2, "colopl_bc support", "enabled");
67 4 : php_info_print_table_row(2, "bc version", PHP_COLOPL_BC_VERSION);
68 4 : php_info_print_table_end();
69 4 : }
70 :
71 266 : PHP_GINIT_FUNCTION(colopl_bc)
72 : {
73 : #if defined(ZTS) && defined(COMPILE_DL_COLOPL_BC)
74 132 : ZEND_TSRMLS_CACHE_UPDATE();
75 : #endif
76 :
77 : #if PHP_VERSION_ID >= 80000
78 266 : colopl_bc_globals->php74_user_sort_context = NULL;
79 : #endif
80 266 : }
81 :
82 : zend_module_entry colopl_bc_module_entry = {
83 : STANDARD_MODULE_HEADER,
84 : "colopl_bc",
85 : ext_functions,
86 : PHP_MINIT(colopl_bc),
87 : PHP_MSHUTDOWN(colopl_bc),
88 : PHP_RINIT(colopl_bc),
89 : NULL,
90 : PHP_MINFO(colopl_bc),
91 : PHP_COLOPL_BC_VERSION,
92 : PHP_MODULE_GLOBALS(colopl_bc),
93 : PHP_GINIT(colopl_bc),
94 : NULL,
95 : NULL,
96 : STANDARD_MODULE_PROPERTIES_EX
97 : };
98 :
99 : #ifdef COMPILE_DL_COLOPL_BC
100 : # ifdef ZTS
101 : ZEND_TSRMLS_CACHE_DEFINE()
102 : # endif
103 266 : ZEND_GET_MODULE(colopl_bc)
104 : #endif
|