Skip to content

Commit e94dd19

Browse files
committed
ini 指令一节
1 parent d4902e8 commit e94dd19

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

book/chapt11/11-04-00-ini-set.markdown

+50-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# 第四节 使用 INI 指令
22

3-
有些时候我们可能希望一些初始化的配置项从 `php.ini` 里读取的,所以我们这里学习下添加 INI 指令。添加的方式有两种:一种是直接添加,另一种是配合全局变量。
3+
有些时候我们可能希望一些初始化的配置项从 `php.ini` 里读取的,所以我们这里学习下添加 INI 指令。
4+
添加的方式有两种:一种是直接添加,另一种是配合全局变量。
45

56
## 准备
67

@@ -11,7 +12,54 @@
1112
string get_demo_init_value()
1213
[root@localhost ext]# ./ext_skel --extname=tipi_ini_demo --proto=ini.proto
1314

14-
## 直接添加
15+
## 使用 PHP_INI_ENTRY 添加
1516

17+
### 声明
1618

19+
打开`tipi_ini_demo.c``PHP_INI_BEGIN`宏和`PHP_INI_END`宏的注释。这里仅演示一个配置项
20+
21+
[c]
22+
PHP_INI_BEGIN()
23+
PHP_INI_ENTRY("tipi_ini_demo.global_value", "42", PHP_INI_ALL, NULL)
24+
PHP_INI_END()
25+
26+
### 注册
27+
28+
[c]
29+
PHP_MINIT_FUNCTION(tipi_ini_demo)
30+
{
31+
REGISTER_INI_ENTRIES();
32+
return SUCCESS;
33+
}
34+
35+
### 注销
36+
37+
[c]
38+
PHP_MSHUTDOWN_FUNCTION(tipi_ini_demo)
39+
{
40+
UNREGISTER_INI_ENTRIES();
41+
return SUCCESS;
42+
}
43+
44+
### 使用
45+
46+
[c]
47+
PHP_FUNCTION(get_demo_init_value)
48+
{
49+
RETURN_LONG(INI_INT("tipi_ini_demo.global_value"));
50+
}
51+
52+
### 编译测试
53+
54+
编译的步骤不再重复说明,请参考本章开头的方式
55+
56+
[shell]
57+
php7 -d"extension=tipi_ini_demo.so" -r "var_dump(get_demo_init_value());"
58+
59+
执行结果为42。然后,添加 `php.ini` 指令
60+
61+
[shell]
62+
tipi_ini_demo.global_value = 100
63+
64+
重新运行,结果则是 100 了,说明 `php.ini` 指令配置成功。
1765

0 commit comments

Comments
 (0)