1
1
use phper:: c_str_ptr;
2
2
use phper:: php_fn;
3
- use phper:: sys:: zend_function_entry;
4
- use phper:: sys:: zend_internal_arg_info;
5
- use phper:: sys:: zend_parse_parameters;
6
- use phper:: sys:: ZEND_RESULT_CODE_SUCCESS ;
7
- use phper:: sys:: { zend_ini_entry_def, zend_module_entry} ;
3
+ use phper:: sys:: { ZEND_RESULT_CODE_SUCCESS , zend_parse_parameters, zend_internal_arg_info, zend_function_entry, PHP_INI_SYSTEM } ;
4
+ use phper:: sys:: { zend_ini_entry_def, zend_module_entry, zend_register_ini_entries, zend_unregister_ini_entries} ;
8
5
use phper:: zend:: api:: FunctionEntries ;
9
6
use phper:: zend:: compile:: InternalArgInfos ;
10
7
use phper:: zend:: ini:: IniEntryDefs ;
@@ -21,31 +18,37 @@ use std::mem::{size_of, transmute};
21
18
use std:: os:: raw:: { c_char, c_int, c_uchar, c_uint, c_ushort} ;
22
19
use std:: ptr:: { null, null_mut} ;
23
20
24
- static INI_ENTRIES : IniEntryDefs < 1 > = IniEntryDefs :: new ( [
25
- // zend_ini_entry_def {
26
- // name: null( ),
27
- // on_modify: None,
28
- // mh_arg1: null_mut(),
29
- // mh_arg2: null_mut(),
30
- // mh_arg3: null (),
31
- // value: null( ),
32
- // displayer: None,
33
- // modifiable: 0 ,
34
- // name_length: 0,
35
- // value_length: 0,
36
- // },
21
+ static INI_ENTRIES : IniEntryDefs < 2 > = IniEntryDefs :: new ( [
22
+ zend_ini_entry_def {
23
+ name : c_str_ptr ! ( "simple.enable" ) ,
24
+ on_modify : None ,
25
+ mh_arg1 : null_mut ( ) ,
26
+ mh_arg2 : null_mut ( ) ,
27
+ mh_arg3 : null_mut ( ) ,
28
+ value : c_str_ptr ! ( "1" ) ,
29
+ displayer : None ,
30
+ modifiable : PHP_INI_SYSTEM as c_int ,
31
+ name_length : 0 ,
32
+ value_length : 0 ,
33
+ } ,
37
34
unsafe { transmute ( [ 0u8 ; size_of :: < zend_ini_entry_def > ( ) ] ) } ,
38
35
] ) ;
39
36
40
37
#[ php_minit_function]
41
38
fn m_init_simple ( type_ : c_int , module_number : c_int ) -> bool {
42
39
println ! ( "module init" ) ;
40
+ unsafe {
41
+ zend_register_ini_entries ( INI_ENTRIES . get ( ) , module_number) ;
42
+ }
43
43
true
44
44
}
45
45
46
46
#[ php_mshutdown_function]
47
47
fn m_shutdown_simple ( type_ : c_int , module_number : c_int ) -> bool {
48
48
println ! ( "module shutdown" ) ;
49
+ unsafe {
50
+ zend_unregister_ini_entries ( module_number) ;
51
+ }
49
52
true
50
53
}
51
54
0 commit comments