From 793759b774c7738f24e0e63ff4a176e20ca87a4a Mon Sep 17 00:00:00 2001 From: eric Date: Fri, 2 Jun 2017 11:18:23 +0800 Subject: [PATCH 01/82] Update zval.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正类型 --- 2/zval.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/zval.md b/2/zval.md index afe479b..a0e2b22 100644 --- a/2/zval.md +++ b/2/zval.md @@ -60,7 +60,7 @@ struct _zval_struct { }; ``` `zval`结构比较简单,内嵌一个union类型的`zend_value`保存具体变量类型的值或指针,`zval`中还有两个union:`u1`、`u2`: -* __u1:__ 它的意义比较直观,变量的类型就通过`u1.type`区分,另外一个值`type_flags`为类型掩码,在变量的内存管理、gc机制中会用到,第三部分会详细分析,至于后面两个`const_flags`、`reserved`暂且不管 +* __u1:__ 它的意义比较直观,变量的类型就通过`u1.v.type`区分,另外一个值`type_flags`为类型掩码,在变量的内存管理、gc机制中会用到,第三部分会详细分析,至于后面两个`const_flags`、`reserved`暂且不管 * __u2:__ 这个值纯粹是个辅助值,假如`zval`只有:`value`、`u1`两个值,整个zval的大小也会对齐到16byte,既然不管有没有u2大小都是16byte,把多余的4byte拿出来用于一些特殊用途还是很划算的,比如next在哈希表解决哈希冲突时会用到,还有fe_pos在foreach会用到...... 从`zend_value`可以看出,除`long`、`double`类型直接存储值外,其它类型都为指针,指向各自的结构。 From 1a6ef79382f77dadc9a43f05227093ee1a747c99 Mon Sep 17 00:00:00 2001 From: maben Date: Fri, 2 Jun 2017 18:15:09 +0800 Subject: [PATCH 02/82] update --- 3/zend_compile_opcode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/3/zend_compile_opcode.md b/3/zend_compile_opcode.md index f48e7da..a8fde50 100644 --- a/3/zend_compile_opcode.md +++ b/3/zend_compile_opcode.md @@ -245,7 +245,7 @@ int main() return 0; } ``` -我们知道name的值分配在栈上,而"pangudashu"分配在常量区,那么"name"变量名分配在哪呢? +我们知道指针name分配在栈上,而"pangudashu"分配在常量区,那么"name"变量名分配在哪呢? 实际上C里面是不会存变量名称的,编译的过程会将变量名替换为偏移量表示:`ebp - 偏移量`或`esp + 偏移量`,将上面的代码转为汇编: ```c @@ -272,7 +272,7 @@ main: ![php vs c](../img/php_vs_c.png) -在编译时就可确定且不会改变的量称为字面量,也称作常量(IS_CONST),这些值在编译阶段就已经分配zval,保存在`zend_op_array->literals`数组中(对应c程序的常量内存区),访问时通过`_zend_op_array->literals + 偏移量`读取,举个例子: +在编译时就可确定且不会改变的量称为字面量,也称作常量(IS_CONST),这些值在编译阶段就已经分配zval,保存在`zend_op_array->literals`数组中(对应c程序的常量存储区),访问时通过`_zend_op_array->literals + 偏移量`读取,举个例子: ```c kind) { case xxx: ... - break; + break; case ZEND_AST_ECHO: zend_compile_echo(ast); break; - ... + ... default: { znode result; From 7ea4b9cdfcadc185c4e1e113eb6d7fb8a80c243d Mon Sep 17 00:00:00 2001 From: iam2c <1584684300@qq.com> Date: Fri, 2 Jun 2017 18:28:39 +0800 Subject: [PATCH 03/82] Update include.md --- 4/include.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4/include.md b/4/include.md index 8df3fd2..3e54ec8 100644 --- a/4/include.md +++ b/4/include.md @@ -94,7 +94,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HAN ![](../img/include_2.png) -> 注意:这里include文件中定义的var_1实际是替换了原文件中的变量,也就是只有一个var_1,所以此处zend_array的引用是1而不是2 +> 注意:这里include文件中定义的var_2实际是替换了原文件中的变量,也就是只有一个var_2,所以此处zend_array的引用是1而不是2 接下来就是被包含文件的执行,执行到`$var_2 = array()`时,将原array(1,2,3)引用减1变为0,这时候将其释放,然后将新的value:array()赋给$var_2,这个过程就是普通变量的赋值过程,注意此时调用文件中的$var_2仍然指向被释放掉的value,此时的内存关系: From c9554e35855ef4ea721f8991c3f666a001f3e2cf Mon Sep 17 00:00:00 2001 From: eric Date: Fri, 2 Jun 2017 20:41:40 +0800 Subject: [PATCH 04/82] Update zend_ht.md --- 2/zend_ht.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/zend_ht.md b/2/zend_ht.md index 335c700..7014515 100644 --- a/2/zend_ht.md +++ b/2/zend_ht.md @@ -155,7 +155,7 @@ static void ZEND_FASTCALL zend_hash_do_resize(HashTable *ht) ``` ### 2.2.6 重建散列表 -当删除元素达到一定数量或扩容后都需要重建散列表,因为value在Bucket位置移动了或哈希数组nTableSize变化了导致key与value的映射关系改变,重建过程实际就是遍历Bucket数组中的value,然后重新计算映射值更新到散列表,除了更新散列表之外,这里还有一个重要的处理:移除已删除的value,开始的时候我们说过,删除value时只是将value的type表为了IS_UNDEF,并没有实际从Bucket数组中删除,如果这些value一直存在那么将浪费很多空间,所以这里会把它们移除,操作的方式也比较简单:将后面未删除的value依次前移,具体过程如下: +当删除元素达到一定数量或扩容后都需要重建散列表,因为value在Bucket位置移动了或哈希数组nTableSize变化了导致key与value的映射关系改变,重建过程实际就是遍历Bucket数组中的value,然后重新计算映射值更新到散列表,除了更新散列表之外,这里还有一个重要的处理:移除已删除的value,开始的时候我们说过,删除value时只是将value的type变为了IS_UNDEF,并没有实际从Bucket数组中删除,如果这些value一直存在那么将浪费很多空间,所以这里会把它们移除,操作的方式也比较简单:将后面未删除的value依次前移,具体过程如下: ```c //zend_hash.c ZEND_API int ZEND_FASTCALL zend_hash_rehash(HashTable *ht) From 7b6d44cae77d127dd112503cd74eae73a6329c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=98=E5=8F=A4=E5=A4=A7=E5=8F=94?= Date: Sat, 3 Jun 2017 09:33:04 +0800 Subject: [PATCH 05/82] Update zend_ht.md --- 2/zend_ht.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2/zend_ht.md b/2/zend_ht.md index 7014515..95d8177 100644 --- a/2/zend_ht.md +++ b/2/zend_ht.md @@ -38,7 +38,7 @@ struct _zend_array { dtor_func_t pDestructor; }; ``` -HashTable中有两个非常相近的值:`nNumUsed`、`nNumOfElements`,`nNumOfElements`表示哈希表已有元素数,那这个值不跟`nNumUsed`一样吗?为什么要定义两个呢?实际上它们有不同的含义,当将一个元素从哈希表删除时并不会将对应的Bucket移除,而是将Bucket存储的zval标示为`IS_UNDEF`,只有扩容时发现nNumOfElements与nNumUsed相差达到一定数量(这个数量是:`ht->nNumUsed - ht->nNumOfElements > (ht->nNumOfElements >> 5)`)时才会将已删除的元素全部移除,重新构建哈希表。所以`nNumUsed`>=`nNumOfElements`。 +HashTable中有两个非常相近的值:`nNumUsed`、`nNumOfElements`,`nNumOfElements`表示哈希表已有元素数,那这个值不跟`nNumUsed`一样吗?为什么要定义两个呢?实际上它们有不同的含义,当将一个元素从哈希表删除时并不会将对应的Bucket移除,而是将Bucket存储的zval修改为`IS_UNDEF`,只有扩容时发现nNumOfElements与nNumUsed相差达到一定数量(这个数量是:`ht->nNumUsed - ht->nNumOfElements > (ht->nNumOfElements >> 5)`)时才会将已删除的元素全部移除,重新构建哈希表。所以`nNumUsed`>=`nNumOfElements`。 HashTable中另外一个非常重要的值`arData`,这个值指向存储元素数组的第一个Bucket,插入元素时按顺序 __依次插入__ 数组,比如第一个元素在arData[0]、第二个在arData[1]...arData[nNumUsed]。PHP数组的有序性正是通过`arData`保证的,这是第一个与普通散列表实现不同的地方。 @@ -155,7 +155,7 @@ static void ZEND_FASTCALL zend_hash_do_resize(HashTable *ht) ``` ### 2.2.6 重建散列表 -当删除元素达到一定数量或扩容后都需要重建散列表,因为value在Bucket位置移动了或哈希数组nTableSize变化了导致key与value的映射关系改变,重建过程实际就是遍历Bucket数组中的value,然后重新计算映射值更新到散列表,除了更新散列表之外,这里还有一个重要的处理:移除已删除的value,开始的时候我们说过,删除value时只是将value的type变为了IS_UNDEF,并没有实际从Bucket数组中删除,如果这些value一直存在那么将浪费很多空间,所以这里会把它们移除,操作的方式也比较简单:将后面未删除的value依次前移,具体过程如下: +当删除元素达到一定数量或扩容后都需要重建散列表,因为value在Bucket位置移动了或哈希数组nTableSize变化了导致key与value的映射关系改变,重建过程实际就是遍历Bucket数组中的value,然后重新计算映射值更新到散列表,除了更新散列表之外,这里还有一个重要的处理:移除已删除的value,开始的时候我们说过,删除value时只是将value的type设置为IS_UNDEF,并没有实际从Bucket数组中删除,如果这些value一直存在那么将浪费很多空间,所以这里会把它们移除,操作的方式也比较简单:将后面未删除的value依次前移,具体过程如下: ```c //zend_hash.c ZEND_API int ZEND_FASTCALL zend_hash_rehash(HashTable *ht) From e542a3d14b28e642563766c4958a92e78b94eb79 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Sat, 3 Jun 2017 20:06:02 +0800 Subject: [PATCH 06/82] =?UTF-8?q?fpm=E5=AE=9E=E7=8E=B0=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1/fpm.md | 354 +++++++++++++++++++++++++++++++++++++ img/fastcgi.png | Bin 0 -> 9472 bytes img/master_event_1.png | Bin 0 -> 10295 bytes img/worker_pool.png | Bin 0 -> 11814 bytes img/worker_pool_struct.png | Bin 0 -> 43232 bytes 5 files changed, 354 insertions(+) create mode 100644 1/fpm.md create mode 100644 img/fastcgi.png create mode 100644 img/master_event_1.png create mode 100644 img/worker_pool.png create mode 100644 img/worker_pool_struct.png diff --git a/1/fpm.md b/1/fpm.md new file mode 100644 index 0000000..8d73f36 --- /dev/null +++ b/1/fpm.md @@ -0,0 +1,354 @@ +## 1.3 FPM +### 1.3.1 概述 +FPM(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器,从它的定义可以看出,FPM的核心功能是进程管理,那么它用来管理什么进程呢?这个问题就需要从FastCGI说起了。 + +FastCGI是Web服务器(如:Nginx、Apache)和处理程序之间的一种通信协议,它是与Http类似的一种应用层通信协议,注意:它只是一种协议! + +前面曾一再强调,PHP只是一个脚本解析器,你可以把它理解为一个普通的函数,输入是PHP脚本。输出是执行结果,假如我们想用PHP代替shell,在命令行中执行一个文件,那么就可以写一个程序来嵌入PHP解析器,这就是cli模式,这种模式下PHP就是普通的一个命令工具。接着我们又想:能不能让PHP处理http请求呢?这时就涉及到了网络处理,PHP需要接收请求、解析协议,然后处理完成返回请求。在网络应用场景下,PHP并没有像Golang那样实现http网络库,而是实现了FastCGI协议,然后与web服务器配合实现了http的处理,web服务器来处理http请求,然后将解析的结果再通过FastCGI协议转发给处理程序,处理程序处理完成后将结果返回给web服务器,web服务器再返回给用户,如下图所示。 + +![](../img/fastcgi.png) + +PHP实现了FastCGI协议的解析,但是并没有具体实现网络处理,一般的处理模型:多进程、多线程,多进程模型通常是主进程只负责管理子进程,而基本的网络事件由各个子进程处理,nginx、fpm就是这种模式;另一种多线程模型与多进程类似,只是它是线程粒度,通常会由主线程监听、接收请求,然后交由子线程处理,memcached就是这种模式,有的也是采用多进程那种模式:主线程只负责管理子线程不处理网络事件,各个子线程监听、接收、处理请求,memcached使用udp协议时采用的是这种模式。 + +### 1.3.2 基本实现 +概括来说,fpm的实现就是创建一个master进程,在master进程中创建并监听socket,然后fork出多个子进程,这些子进程各自accept请求,子进程的处理非常简单,它在启动后阻塞在accept上,有请求到达后开始读取请求数据,读取完成后开始处理然后再返回,在这期间是不会接收其它请求的,也就是说fpm的子进程同时只能响应一个请求,只有把这个请求处理完成后才会accept下一个请求,这一点与nginx的事件驱动有很大的区别,nginx的子进程通过epoll管理套接字,如果一个请求数据还未发送完成则会处理下一个请求,即一个进程会同时连接多个请求,它是非阻塞的模型,只处理活跃的套接字。 + +fpm的master进程与worker进程之间不会直接进行通信,master通过共享内存获取worker进程的信息,比如worker进程当前状态、已处理请求数等,当master进程要杀掉一个worker进程时则通过发送信号的方式通知worker进程。 + +fpm可以同时监听多个端口,每个端口对应一个worker pool,而每个pool下对应多个worker进程,类似nginx中server概念。 + +![](../img/worker_pool.png) + +在php-fpm.conf中通过`[pool name]`声明一个worker pool: +``` +[web1] +listen = 127.0.0.1:9000 +... + +[web2] +listen = 127.0.0.1:9001 +... +``` +启动fpm后查看进程:ps -aux|grep fpm +```c +root 27155 0.0 0.1 144704 2720 ? Ss 15:16 0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf) +nobody 27156 0.0 0.1 144676 2416 ? S 15:16 0:00 php-fpm: pool web1 +nobody 27157 0.0 0.1 144676 2416 ? S 15:16 0:00 php-fpm: pool web1 +nobody 27159 0.0 0.1 144680 2376 ? S 15:16 0:00 php-fpm: pool web2 +nobody 27160 0.0 0.1 144680 2376 ? S 15:16 0:00 php-fpm: pool web2 +``` +具体实现上worker pool通过`fpm_worker_pool_s`这个结构表示,多个worker pool组成一个单链表: +```c +struct fpm_worker_pool_s { + struct fpm_worker_pool_s *next; //指向下一个worker pool + struct fpm_worker_pool_config_s *config; //conf配置:pm、max_children、start_servers... + int listening_socket; //监听的套接字 + ... + + //以下这个值用于master定时检查、记录worker数 + struct fpm_child_s *children; //当前pool的worker链表 + int running_children; //当前pool的worker运行总数 + int idle_spawn_rate; + int warn_max_children; + + struct fpm_scoreboard_s *scoreboard; //记录worker的运行信息,比如空闲、忙碌worker数 + ... +} +``` +### 1.3.3 FPM的初始化 +接下来看下fpm的启动流程,从`main()`函数开始: +```c +//sapi/fpm/fpm/fpm_main.c +int main(int argc, char *argv[]) +{ + ... + //注册SAPI:将全局变量sapi_module设置为cgi_sapi_module + sapi_startup(&cgi_sapi_module); + ... + //执行php_module_starup() + if (cgi_sapi_module.startup(&cgi_sapi_module) == FAILURE) { + return FPM_EXIT_SOFTWARE; + } + ... + //初始化 + if(0 > fpm_init(...)){ + ... + } + ... + fpm_is_running = 1; + + fcgi_fd = fpm_run(&max_requests);//后面都是worker进程的操作,master进程不会走到下面 + parent = 0; + ... +} +``` +`fpm_init()`主要有以下几个关键操作: + +__(1)fpm_conf_init_main():__ + +解析php-fpm.conf配置文件,分配worker pool内存结构并保存到全局变量中:fpm_worker_all_pools,各worker pool配置解析到`fpm_worker_pool_s->config`中。 + +__(2)fpm_scoreboard_init_main():__ 分配用于记录worker进程运行信息的共享内存,按照worker pool的最大worker进程数分配,每个worker pool分配一个`fpm_scoreboard_s`结构,pool下对应的每个worker进程分配一个`fpm_scoreboard_proc_s`结构,各结构的对应关系如下图。 + +![](../worker_pool_struct.png) + +__(3)fpm_signals_init_main():__ +```c +static int sp[2]; + +int fpm_signals_init_main() +{ + struct sigaction act; + + //创建一个全双工管道 + if (0 > socketpair(AF_UNIX, SOCK_STREAM, 0, sp)) { + return -1; + } + //注册信号处理handler + act.sa_handler = sig_handler; + sigfillset(&act.sa_mask); + if (0 > sigaction(SIGTERM, &act, 0) || + 0 > sigaction(SIGINT, &act, 0) || + 0 > sigaction(SIGUSR1, &act, 0) || + 0 > sigaction(SIGUSR2, &act, 0) || + 0 > sigaction(SIGCHLD, &act, 0) || + 0 > sigaction(SIGQUIT, &act, 0)) { + return -1; + } + return 0; +} +``` +这里会通过`socketpair()`创建一个管道,这个管道并不是用于master与worker进程通信的,它只在master进程中使用,具体用途在稍后介绍event事件处理时再作说明。另外设置master的信号处理handler,当master收到SIGTERM、SIGINT、SIGUSR1、SIGUSR2、SIGCHLD、SIGQUIT这些信号时将调用`sig_handler()`处理: +```c +static void sig_handler(int signo) +{ + static const char sig_chars[NSIG + 1] = { + [SIGTERM] = 'T', + [SIGINT] = 'I', + [SIGUSR1] = '1', + [SIGUSR2] = '2', + [SIGQUIT] = 'Q', + [SIGCHLD] = 'C' + }; + char s; + ... + s = sig_chars[signo]; + //将信号通知写入管道sp[1]端 + write(sp[1], &s, sizeof(s)); + ... +} +``` +__(4)fpm_sockets_init_main()__ + +创建每个worker pool的socket套接字。 + +__(5)fpm_event_init_main():__ + +启动master的事件管理,fpm实现了一个事件管理器用于管理IO、定时事件,其中IO事件通过kqueue、epoll、poll、select等管理,定时事件就是定时器,一定时间后触发某个事件。 + +在`fpm_init()`初始化完成后接下来就是最关键的`fpm_run()`操作了,此环节将fork子进程,启动进程管理器,另外master进程将不会再返回,只有各worker进程会返回,也就是说`fpm_run()`之后的操作均是worker进程的。 +```c +int fpm_run(int *max_requests) +{ + struct fpm_worker_pool_s *wp; + for (wp = fpm_worker_all_pools; wp; wp = wp->next) { + //调用fpm_children_make() fork子进程 + is_parent = fpm_children_create_initial(wp); + + if (!is_parent) { + goto run_child; + } + } + //master进程将进入event循环,不再往下走 + fpm_event_loop(0); + +run_child: //只有worker进程会到这里 + + *max_requests = fpm_globals.max_requests; + return fpm_globals.listening_socket; //返回监听的套接字 +} +``` +在fork后worker进程返回了监听的套接字继续main()后面的处理,而master将永远阻塞在`fpm_event_loop()`,接下来分别介绍master、worker进程的后续操作。 + +### 1.3.4 处理请求 +`fpm_run()`执行后将fork出worker进程,worker进程返回`main()`中继续向下执行,后面的流程就是worker进程不断accept请求,然后执行PHP脚本并返回。整体流程如下: + +* __(1)等待请求:__ worker进程阻塞在fcgi_accept_request()等待请求; +* __(2)解析请求:__ fastcgi请求到达后被worker接收,然后开始接收并解析请求数据,直到request数据完全到达; +* __(3)请求初始化:__ 执行php_request_startup(),此阶段会调用每个扩展的:PHP_RINIT_FUNCTION(); +* __(4)编译、执行:__ 由php_execute_script()完成PHP脚本的编译、执行; +* __(5)关闭请求:__ 请求完成后执行php_request_shutdown(),此阶段会调用每个扩展的:PHP_RSHUTDOWN_FUNCTION(),然后进入步骤(1)等待下一个请求。 + +```c +int main(int argc, char *argv[]) +{ + ... + fcgi_fd = fpm_run(&max_requests); + parent = 0; + + //初始化fastcgi请求 + request = fpm_init_request(fcgi_fd); + + //worker进程将阻塞在这,等待请求 + while (EXPECTED(fcgi_accept_request(request) >= 0)) { + SG(server_context) = (void *) request; + init_request_info(); + + //请求开始 + if (UNEXPECTED(php_request_startup() == FAILURE)) { + ... + } + ... + + fpm_request_executing(); + //编译、执行PHP脚本 + php_execute_script(&file_handle); + ... + //请求结束 + php_request_shutdown((void *) 0); + ... + } + ... + //worker进程退出 + php_module_shutdown(); + ... +} +``` +worker进程一次请求的处理被划分为5个阶段: + +* __FPM_REQUEST_ACCEPTING:__ 等待请求阶段 +* __FPM_REQUEST_READING_HEADERS:__ 读取fastcgi请求header阶段 +* __FPM_REQUEST_INFO:__ 获取请求信息阶段,此阶段是将请求的method、query stirng、request uri等信息保存到各worker进程的fpm_scoreboard_proc_s结构中,此操作需要加锁,因为master进程也会操作此结构 +* __FPM_REQUEST_EXECUTING:__ 执行请求阶段 +* __FPM_REQUEST_END:__ 没有使用 +* __FPM_REQUEST_FINISHED:__ 请求处理完成 + +worker处理到各个阶段时将会把当前阶段更新到`fpm_scoreboard_proc_s->request_stage`,master进程正是通过这个标识判断worker进程是否空闲的。 + +### 1.3.5 进程管理 +这一节我们来看下master是如何管理worker进程的,首先介绍下三种不同的进程管理方式: + +* __static:__ 这种方式比较简单,在启动时master按照`pm.max_children`配置fork出相应数量的worker进程,即worker进程数是固定不变的 +* __dynamic:__ 动态进程管理,首先在fpm启动时按照`pm.start_servers`初始化一定数量的worker,运行期间如果master发现空闲worker数低于`pm.min_spare_servers`配置数(表示请求比较多,worker处理不过来了)则会fork worker进程,但总的worker数不能超过`pm.max_children`,如果master发现空闲worker数超过了`pm.max_spare_servers`(表示闲着的worker太多了)则会杀掉一些worker,避免占用过多资源,master通过这4个值来控制worker数 +* __ondemand:__ 这种方式一般很少用,在启动时不分配worker进程,等到有请求了后再通知master进程fork worker进程,总的worker数不超过`pm.max_children`,处理完成后worker进程不会立即退出,当空闲时间超过`pm.process_idle_timeout`后再退出 + +前面介绍到在`fpm_run()`master进程将进入`fpm_event_loop()`: +```c +void fpm_event_loop(int err) +{ + //创建一个io read的监听事件,这里监听的就是在fpm_init()阶段中通过socketpair()创建管道sp[1] + //当sp[1]可读时将回调fpm_got_signal() + fpm_event_set(&signal_fd_event, fpm_signals_get_fd(), FPM_EV_READ, &fpm_got_signal, NULL); + fpm_event_add(&signal_fd_event, 0); + + //如果在php-fpm.conf配置了request_terminate_timeout则启动心跳检查 + if (fpm_globals.heartbeat > 0) { + fpm_pctl_heartbeat(NULL, 0, NULL); + } + //定时触发进程管理 + fpm_pctl_perform_idle_server_maintenance_heartbeat(NULL, 0, NULL); + + //进入事件循环,master进程将阻塞在此 + while (1) { + ... + //等待IO事件 + ret = module->wait(fpm_event_queue_fd, timeout); + ... + //检查定时器事件 + ... + } +} +``` +这就是master整体的处理,其进程管理主要依赖注册的几个事件,接下来我们详细分析下这几个事件的功能。 + +__(1)sp[1]管道可读事件:__ + +在`fpm_init()`阶段master曾创建了一个全双工的管道:sp,然后在这里创建了一个sp[1]可读的事件,当sp[1]可读时将交由`fpm_got_signal()`处理,向sp[0]写数据时sp[1]才会可读,那么什么时机会向sp[0]写数据呢?前面已经提到了:当master收到注册的那几种信号时会写入sp[0]端,这个时候将触发sp[1]可读事件。 + +![](../img/master_event_1.png) + +这个事件是master用于处理信号的,我们根据master注册的信号逐个看下不同用途: + +* __SIGINT/SIGTERM/SIGQUIT:__ 退出fpm,在master收到退出信号后将向所有的worker进程发送退出信号,然后master退出 +* __SIGUSR1:__ 重新加载日志文件,生产环境中通常会对日志进行切割,切割后会生成一个新的日志文件,如果fpm不重新加载将无法继续写入日志,这个时候就需要向master发送一个USR1的信号 +* __SIGUSR2:__ 重启fpm,首先master也是会向所有的worker进程发送退出信号,然后master会调用execvp()重新启动fpm,最后旧的master退出 +* __SIGCHLD:__ 这个信号是子进程退出时操作系统发送给父进程的,子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态,只有当父进程调用wait或者waitpid函数查询子进程退出状态后子进程才告终止,fpm中当worker进程因为异常原因(比如coredump了)退出而非master主动杀掉时master将受到此信号,这个时候父进程将调用waitpid()查下子进程的退出,然后检查下是不是需要重新fork新的worker + +具体处理逻辑在`fpm_got_signal()`函数中,这里不再罗列。 + +__(2)fpm_pctl_perform_idle_server_maintenance_heartbeat():__ + +这是进程管理实现的主要事件,master启动了一个定时器,每割1s触发一次,主要用于dynamic、ondemand模式下的worker管理,master会定时检查各work pool的worker进程数,通过此定时器实现worker数量的控制,处理逻辑如下: +```c +static void fpm_pctl_perform_idle_server_maintenance(struct timeval *now) +{ + for (wp = fpm_worker_all_pools; wp; wp = wp->next) { + struct fpm_child_s *last_idle_child = NULL; //空闲时间最久的worker + int idle = 0; //空闲worker数 + int active = 0; //忙碌worker数 + + for (child = wp->children; child; child = child->next) { + //根据worker进程的fpm_scoreboard_proc_s->request_stage判断 + if (fpm_request_is_idle(child)) { + //找空闲时间最久的worker + ... + idle++; + }else{ + active++; + } + } + ... + //ondemand模式 + if (wp->config->pm == PM_STYLE_ONDEMAND) { + if (!last_idle_child) continue; + + fpm_request_last_activity(last_idle_child, &last); + fpm_clock_get(&now); + if (last.tv_sec < now.tv_sec - wp->config->pm_process_idle_timeout) { + //如果空闲时间最长的worker空闲时间超过了process_idle_timeout则杀掉该worker + last_idle_child->idle_kill = 1; + fpm_pctl_kill(last_idle_child->pid, FPM_PCTL_QUIT); + } + continue; + } + //dynamic + if (wp->config->pm != PM_STYLE_DYNAMIC) continue; + if (idle > wp->config->pm_max_spare_servers && last_idle_child) { + //空闲worker太多了,杀掉 + last_idle_child->idle_kill = 1; + fpm_pctl_kill(last_idle_child->pid, FPM_PCTL_QUIT); + wp->idle_spawn_rate = 1; + continue; + } + if (idle < wp->config->pm_min_spare_servers) { + //空闲worker太少了,如果总worker数未达到max数则fork + ... + } + } +} +``` +__(3)fpm_pctl_heartbeat():__ + +这个事件是用于限制worker处理单个请求最大耗时的,php-fpm.conf中有一个`request_terminate_timeout`的配置项,如果worker处理一个请求的总时长超过了这个值那么master将会向此worker进程发送`kill -TERM`信号杀掉worker进程,此配置单位为秒,默认值为0表示关闭此机制,另外fpm打印的slow log也是在这里完成的。 +```c +static void fpm_pctl_check_request_timeout(struct timeval *now) +{ + struct fpm_worker_pool_s *wp; + + for (wp = fpm_worker_all_pools; wp; wp = wp->next) { + int terminate_timeout = wp->config->request_terminate_timeout; + int slowlog_timeout = wp->config->request_slowlog_timeout; + struct fpm_child_s *child; + + if (terminate_timeout || slowlog_timeout) { + for (child = wp->children; child; child = child->next) { + //检查当前当前worker处理的请求是否超时 + fpm_request_check_timed_out(child, now, terminate_timeout, slowlog_timeout); + } + } + } +} +``` +除了上面这几个事件外还有一个没有提到,那就是ondemand模式下master监听的新请求到达的事件,因为ondemand模式下fpm启动时是不会预创建worker的,有请求时才会生成子进程,所以请求到达时需要通知master进程,这个事件是在`fpm_children_create_initial()`时注册的,事件处理函数为`fpm_pctl_on_socket_accept()`,具体逻辑这里不再展开,比较容易理解。 + +到目前为止我们已经把fpm的核心实现介绍完了,事实上fpm的实现还是比较简单的。 diff --git a/img/fastcgi.png b/img/fastcgi.png new file mode 100644 index 0000000000000000000000000000000000000000..624015674b4aa2f24b9116ed1401be1ac47f68f7 GIT binary patch literal 9472 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ðutG0k)$* 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 T$z*Wu5237}E}tv=-1~n4*0(@d literal 0 HcmV?d00001 diff --git a/img/worker_pool.png b/img/worker_pool.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4551c949ce93e08795eac4f403fb1878421b47 GIT binary patch literal 11814 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 literal 0 HcmV?d00001 diff --git a/img/worker_pool_struct.png b/img/worker_pool_struct.png new file mode 100644 index 0000000000000000000000000000000000000000..23068cc0a7d2f61e7e2ac6f21424c54f0cf2a410 GIT binary patch literal 43232 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 literal 0 HcmV?d00001 From 5dc1e91bf0be7ba787ff6042c3a975c8939f92d7 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Sat, 3 Jun 2017 20:11:36 +0800 Subject: [PATCH 07/82] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1/fpm.md | 4 ++-- README.md | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/1/fpm.md b/1/fpm.md index 8d73f36..b155964 100644 --- a/1/fpm.md +++ b/1/fpm.md @@ -90,7 +90,7 @@ __(1)fpm_conf_init_main():__ __(2)fpm_scoreboard_init_main():__ 分配用于记录worker进程运行信息的共享内存,按照worker pool的最大worker进程数分配,每个worker pool分配一个`fpm_scoreboard_s`结构,pool下对应的每个worker进程分配一个`fpm_scoreboard_proc_s`结构,各结构的对应关系如下图。 -![](../worker_pool_struct.png) +![](../img/worker_pool_struct.png) __(3)fpm_signals_init_main():__ ```c @@ -170,7 +170,7 @@ run_child: //只有worker进程会到这里 ``` 在fork后worker进程返回了监听的套接字继续main()后面的处理,而master将永远阻塞在`fpm_event_loop()`,接下来分别介绍master、worker进程的后续操作。 -### 1.3.4 处理请求 +### 1.3.4 请求处理 `fpm_run()`执行后将fork出worker进程,worker进程返回`main()`中继续向下执行,后面的流程就是worker进程不断accept请求,然后执行PHP脚本并返回。整体流程如下: * __(1)等待请求:__ worker进程阻塞在fcgi_accept_request()等待请求; diff --git a/README.md b/README.md index 60435e4..fcd7372 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,12 @@ * 第1章 PHP基本架构 * 1.1 PHP简介 * 1.2 PHP7的改进 - * 1.3 PHP内核的组成 + * [1.3 FPM](1/fpm.md) + * [1.3.1 概述](1/fpm.md) + * [1.3.2 基本实现](1/fpm.md) + * [1.3.3 FPM的初始化](1/fpm.md) + * [1.3.4 请求处理](1/fpm.md) + * [1.3.5 进程管理](1/fpm.md) * [1.4 PHP执行的几个阶段](1/base_process.md) * 第2章 变量 * [2.1 变量的内部实现](2/zval.md) From c92ad39efcfb3db65cebb6c655627f3aa7a69de8 Mon Sep 17 00:00:00 2001 From: iam2c <1584684300@qq.com> Date: Sat, 3 Jun 2017 23:48:20 +0800 Subject: [PATCH 08/82] Update fpm.md --- 1/fpm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1/fpm.md b/1/fpm.md index b155964..49f961f 100644 --- a/1/fpm.md +++ b/1/fpm.md @@ -263,7 +263,7 @@ void fpm_event_loop(int err) __(1)sp[1]管道可读事件:__ -在`fpm_init()`阶段master曾创建了一个全双工的管道:sp,然后在这里创建了一个sp[1]可读的事件,当sp[1]可读时将交由`fpm_got_signal()`处理,向sp[0]写数据时sp[1]才会可读,那么什么时机会向sp[0]写数据呢?前面已经提到了:当master收到注册的那几种信号时会写入sp[0]端,这个时候将触发sp[1]可读事件。 +在`fpm_init()`阶段master曾创建了一个全双工的管道:sp,然后在这里创建了一个sp[0]可读的事件,当sp[0]可读时将交由`fpm_got_signal()`处理,向sp[1]写数据时sp[0]才会可读,那么什么时机会向sp[1]写数据呢?前面已经提到了:当master收到注册的那几种信号时会写入sp[1]端,这个时候将触发sp[0]可读事件。 ![](../img/master_event_1.png) @@ -278,7 +278,7 @@ __(1)sp[1]管道可读事件:__ __(2)fpm_pctl_perform_idle_server_maintenance_heartbeat():__ -这是进程管理实现的主要事件,master启动了一个定时器,每割1s触发一次,主要用于dynamic、ondemand模式下的worker管理,master会定时检查各work pool的worker进程数,通过此定时器实现worker数量的控制,处理逻辑如下: +这是进程管理实现的主要事件,master启动了一个定时器,每隔1s触发一次,主要用于dynamic、ondemand模式下的worker管理,master会定时检查各worker pool的worker进程数,通过此定时器实现worker数量的控制,处理逻辑如下: ```c static void fpm_pctl_perform_idle_server_maintenance(struct timeval *now) { From 11d633b02d5c28d7210b014e3b4e8b0b7e47dad9 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 7 Jun 2017 19:10:10 +0800 Subject: [PATCH 09/82] add weixin --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fcd7372..a7d0681 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,11 @@ 代码版本:php-7.0.12 ```` +## 反馈 +[交流&吐槽](https://github.com/pangudashu/php7-internal/issues/3) [错误反馈](https://github.com/pangudashu/php7-internal/issues/2) + +![weixin](img/talk.png) + ## 目录: * 第1章 PHP基本架构 * 1.1 PHP简介 @@ -79,15 +84,14 @@ * [7.7.5 数组操作](7/var.md) * [7.8 常量](7/constant.md) * 7.9 面向对象 - * 7.6.1 扩展中创建对象 - * 7.6.2 创建内部类 + 7.9.1 内部类注册 + 7.9.2 定义成员属性 + 7.9.3 定义成员方法 + 7.9.4 定义常量 + 7.9.5 类的实例化 * 7.10 资源类型 * 7.11 经典扩展解析 * 7.8.1 Yaf * 7.8.2 Redis - * 7.8.3 Memcached - -## 反馈 -[交流&吐槽](https://github.com/pangudashu/php7-internal/issues/3) [错误反馈](https://github.com/pangudashu/php7-internal/issues/2) From dcfacae1fc3742f1ee2aa1f0c34d3fceba98e903 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 7 Jun 2017 19:10:53 +0800 Subject: [PATCH 10/82] add img --- img/talk.png | Bin 0 -> 22316 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/talk.png diff --git a/img/talk.png b/img/talk.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e884a15a2f36e080d18f82f9c804ae959a9821 GIT binary patch literal 22316 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 fMYZwnlqMqRV Date: Fri, 9 Jun 2017 17:29:53 +0800 Subject: [PATCH 11/82] =?UTF-8?q?=E4=BF=AE=E6=94=B9break=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 4/break.md | 2 + img/ast_break_div.png | Bin 0 -> 9617 bytes try/break.md | 260 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 262 insertions(+) create mode 100644 img/ast_break_div.png create mode 100644 try/break.md diff --git a/4/break.md b/4/break.md index e6d8b7b..5bfc256 100644 --- a/4/break.md +++ b/4/break.md @@ -121,8 +121,10 @@ static uint32_t zend_get_brk_cont_target(const zend_op_array *op_array, const ze int array_offset = opline->op1.num;//break、continue所属循环zend_brk_cont_element的存储下标 zend_brk_cont_element *jmp_to; do { + //从break/continue所在循环层开始 jmp_to = &op_array->brk_cont_array[array_offset]; if (nest_levels > 1) { + //如果还没到要跳出的层数则接着跳到上层 array_offset = jmp_to->parent; } } while (--nest_levels > 0); diff --git a/img/ast_break_div.png b/img/ast_break_div.png new file mode 100644 index 0000000000000000000000000000000000000000..60f1c24e1c8bce0304c601e1edda98f28bd55593 GIT binary patch literal 9617 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 Ob4O8Kp%7^n{J#JvSK%fA literal 0 HcmV?d00001 diff --git a/try/break.md b/try/break.md new file mode 100644 index 0000000..148fcc5 --- /dev/null +++ b/try/break.md @@ -0,0 +1,260 @@ +# 附录1:PHP语法实现:break/continue按标签中断 + +## 1.1 背景 +首先看下目前PHP中break/continue多层循环的情况: +```php +//loop1 +while(...){ + //loop2 + for(...){ + //loop3 + foreach(...){ + ... + break 2; + } + + } + //loop2 end + ... + +} +``` +`break 2`表示要中断往上数两层也就是loop2这层循环,`break 2`之后将从loop2 end开始继续执行。PHP的break、continue只能根据数值中断对应的循环,当嵌套循环比较多的时候这种方式维护起来就变得很不方便,需要一层层的去数要中断的循环。 + +了解Go语言的读者应该知道在Go中可以按照标签中断,举个例子来看: +```go +//test.go +func main() { +loop1: + for i := 0; i < 2; i++ { + fmt.Println("loop1") + + for j := 0; j < 5; j++ { + fmt.Println(" loop2") + if j == 2 { + break loop1 + } + } + } +} +``` +`go run test.go`将输出: +``` +loop1 + loop2 + loop2 + loop2 +``` +`break loop1`这种语法在PHP中是不支持的,接下来我们就对PHP进行改造,让PHP实现同样的功能。 + +## 1.2 实现 +想让PHP支持类似Go语言那样的语法首先需要明确PHP中循环及中断语句的实现,关于这两部分内容前面《PHP基础语法实现》一章已经详细介绍过了,这里再简单概括下实现的关键点: +* 不管是哪种循环结构,其编译时都生成了一个`zend_brk_cont_element`结构,此结构记录着这个循环break、continue要跳转的位置,以及嵌套的父层循环 +* break/continue编译时分为两个步骤:首先初步编译为临时opcode,此opcode记录着break/continue所在循环层以及要中断的层级(即:`break n`,默认n=1);然后在脚本全部编译完之后的pass_two()中,根据当前循环层及中断的层级n向上查找对应的循环层,最后根据查找到的要中断的循环`zend_brk_cont_element`结构得到对应的跳转位置,生成一条ZEND_JMP指令 + +仔细研究循环、中断的实现可以发现,这里面的关键就在于找到break/continue要中断的那层循环,嵌套循环之间是链表的结构,所以目前的查找就变得很容易了,直接从break/continue当前循环层向前移动n即可。 + +标签在内核中通过HashTable的结构保存(即:CG(context).labels),key就是标签名,标签会记录当前opcode的位置,我们要实现`break 标签`的语法需要根据标签取到循环,因此我们为标签赋予一种新的含义:循环标签,只有标签紧挨着循环的才认为是这种含义,比如: +```php +loop1: +for(...){ + ... +} +``` +标签与循环之间有其它表达式的则只能认为是普通标签: +```php +loop1: +$a = 123; +for(...){ +} +``` +既然要按照标签进行break、continue,那么很容易想到把中断的循环层级id保存到标签中,编译break/continue时先查找标签,再查找循环的`zend_brk_cont_element`即可,这样实现的话需要循环编译时将自己`zend_brk_cont_element`的存储位置保存到标签中,标签的结构需要修改,另外一个问题是标签编译不会生成任何opcode,循环结构无法直接根据上一条opcode判断它是不是 ***循环标签*** ,所以我们换一种方式实现,具体思路如下: + +* __(1)__ 循环结构开始编译前先编译一条空opcode(ZEND_NOP),用于标识这是一个循环,并把这个循环`zend_brk_cont_element`的存储位置记录在此opcode中 +* __(2)__ break编译时如果发现是一个标签,则从CG(context).labels)中取出标签结构,然后判断此标签的下一条opcode是否为ZEND_NOP,如果不是则说明这不是一个 ***>循环标签*** ,无法break/continue,如果是则取出循环结构 +* __(3)__ 得到循环结构之后的处理就比较简单了,但是此时还不能直接编译为ZEND_JMP,因为循环可能还未编译完成,break只能编译为临时opcode,这里可以把标签标记的循环存储位置记录在临时opcode中,然后在pass_two()中再重新获取,需要对pass_two()中的逻辑进行改动,为减少改动,这个地方转化一下实现方式:计算label标记的循环相对break所在循环的位置,也就是转为现有的`break n`,这样以来就无需对pass_two()进行改动了 + +接下来看下具体的实现,以for为例。 + +__(1) 编译循环语句__ + +```c +void zend_compile_for(zend_ast *ast) /* {{{ */ +{ + zend_ast *init_ast = ast->child[0]; + zend_ast *cond_ast = ast->child[1]; + zend_ast *loop_ast = ast->child[2]; + zend_ast *stmt_ast = ast->child[3]; + + znode result; + uint32_t opnum_start, opnum_jmp, opnum_loop; + zend_op *mark_look_opline; + + //新增:创建一条空opcode,用于标识接下来是一个循环结构 + mark_look_opline = zend_emit_op(NULL, ZEND_NOP, NULL, NULL); + + zend_compile_expr_list(&result, init_ast); + zend_do_free(&result); + + opnum_jmp = zend_emit_jump(0); + + zend_begin_loop(ZEND_NOP, NULL); + + //新增:保存当前循环的brk,同时为了防止与其它ZEND_NOP混淆,把op1标为-1 + mark_look_opline->op1.var = -1; + mark_look_opline->extended_value = CG(context).current_brk_cont; + ... +} +``` + +__(2) 编译中断语句__ + +首先明确一点:`break label`将被编译为以下语法结构: + +![](../img/ast_break_div.png) + +`ZEND_AST_BREAK`只有一个子节点,如果是数值那么这个子节点类型为`ZEND_AST_ZVAL`,如果是标签则类型是`ZEND_AST_CONST`,`ZEND_AST_CONST`也有一个类型为`ZEND_AST_ZVAL`子节点。下面看下break/continue修改后的编译逻辑: +```c +void zend_compile_break_continue(zend_ast *ast) +{ + zend_ast *depth_ast = ast->child[0]; + + zend_op *opline; + int depth; + + ZEND_ASSERT(ast->kind == ZEND_AST_BREAK || ast->kind == ZEND_AST_CONTINUE); + + if (CG(context).current_brk_cont == -1) { + zend_error_noreturn(E_COMPILE_ERROR, "'%s' not in the 'loop' or 'switch' context", + ast->kind == ZEND_AST_BREAK ? "break" : "continue"); + } + + if (depth_ast) { + + switch(depth_ast->kind){ + case ZEND_AST_ZVAL: //break 数值; + { + zval *depth_zv; + + depth_zv = zend_ast_get_zval(depth_ast); + if (Z_TYPE_P(depth_zv) != IS_LONG || Z_LVAL_P(depth_zv) < 1) { + zend_error_noreturn(E_COMPILE_ERROR, "'%s' operator accepts only positive numbers", + ast->kind == ZEND_AST_BREAK ? "break" : "continue"); + } + + depth = Z_LVAL_P(depth_zv); + break; + } + case ZEND_AST_CONST://break 标签; + { + //获取label名称 + zend_string *label = zend_ast_get_str(depth_ast->child[0]); + //根据label获取标记的循环,以及相对break所在循环的位置 + depth = zend_loop_get_depth_by_label(label); + if(depth > 0){ + goto SET_OP; + } + break; + } + default: + zend_error_noreturn(E_COMPILE_ERROR, "'%s' operator with non-constant operand " + "is no longer supported", ast->kind == ZEND_AST_BREAK ? "break" : "continue"); + } + } else { + depth = 1; + } + + if (!zend_handle_loops_and_finally_ex(depth)) { + zend_error_noreturn(E_COMPILE_ERROR, "Cannot '%s' %d level%s", + ast->kind == ZEND_AST_BREAK ? "break" : "continue", + depth, depth == 1 ? "" : "s"); + } + +SET_OP: + opline = zend_emit_op(NULL, ast->kind == ZEND_AST_BREAK ? ZEND_BRK : ZEND_CONT, NULL, NULL); + opline->op1.num = CG(context).current_brk_cont; + opline->op2.num = depth; +} +``` +`zend_loop_get_depth_by_label()`这个函数用来计算标签标记的循环相对break/continue所在循环的层级: +```c +int zend_loop_get_depth_by_label(zend_string *label_name) +{ + zval *label_zv; + zend_label *label; + zend_op *next_opline; + + if(UNEXPECTED(CG(context).labels == NULL)){ + zend_error_noreturn(E_COMPILE_ERROR, "can't find label:'%s' or it not mark a loop", ZSTR_VAL(label_name)); + } + + // 1) 查找label + label_zv = zend_hash_find(CG(context).labels, label_name); + if(UNEXPECTED(label_zv == NULL)){ + zend_error_noreturn(E_COMPILE_ERROR, "can't find label:'%s' or it not mark a loop", ZSTR_VAL(label_name)); + } + + label = (zend_label *)Z_PTR_P(label_zv); + + // 2) 获取label下一条opcode + next_opline = &(CG(active_op_array)->opcodes[label->opline_num]); + if(UNEXPECTED(next_opline == NULL)){ + zend_error_noreturn(E_COMPILE_ERROR, "can't find label:'%s' or it not mark a loop", ZSTR_VAL(label_name)); + } + + int label_brk_offset, curr_brk_offset; //标签标识的循环、break当前所在循环 + int depth = 0; //break当前循环至标签循环的层级 + zend_brk_cont_element *brk_cont_element; + + if(next_opline->opcode == ZEND_NOP && next_opline->op1.var == -1){ + label_brk_offset = next_opline->extended_value; + curr_brk_offset = CG(context).current_brk_cont; + + brk_cont_element = &(CG(active_op_array)->brk_cont_array[curr_brk_offset]); + //计算标签标记的循环相对位置 + while(1){ + depth++; + + if(label_brk_offset == curr_brk_offset){ + return depth; + } + + curr_brk_offset = brk_cont_element->parent; + if(curr_brk_offset < 0){ + //label标识的不是break所在循环 + zend_error_noreturn(E_COMPILE_ERROR, "can't break/conitnue label:'%s' because it not mark a loop", ZSTR_VAL(label_name)); + } + } + }else{ + //label没有标识一个循环 + zend_error_noreturn(E_COMPILE_ERROR, "can't break/conitnue label:'%s' because it not mark a loop", ZSTR_VAL(label_name)); + } + + return -1; +} +``` +改动后重新编译PHP,然后测试新的语法是否生效: +```php +//test.php + +loop1: +for($i = 0; $i < 2; $i++){ + echo "loop1\n"; + + for($j = 0; $j < 5; $j++){ + echo " loop2\n"; + if($j == 2){ + break loop1; + } + } +} +``` +`php test.php`输出: +``` +loop1 + loop2 + loop2 + loop2 +``` +其它几个循环结构的改动与for相同,有兴趣的可以自己去尝试下。 + From 7c34ab1a97d8e38846be8aa83e5e4fd90082c92b Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 9 Jun 2017 17:39:38 +0800 Subject: [PATCH 12/82] update --- README.md | 2 ++ try/break.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a7d0681..0b01e69 100644 --- a/README.md +++ b/README.md @@ -94,4 +94,6 @@ * 7.8.1 Yaf * 7.8.2 Redis +## 附录 + * [附录1:break/continue按标签中断语法实现](try/break.md) diff --git a/try/break.md b/try/break.md index 148fcc5..4e27d2b 100644 --- a/try/break.md +++ b/try/break.md @@ -1,4 +1,4 @@ -# 附录1:PHP语法实现:break/continue按标签中断 +# 附录1:break/continue按标签中断语法实现 ## 1.1 背景 首先看下目前PHP中break/continue多层循环的情况: From 215ab14cbcc562d4a390a4873dac885fd85e2e91 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 9 Jun 2017 17:44:27 +0800 Subject: [PATCH 13/82] update --- README.md | 2 +- img/my_wx.png | Bin 0 -> 293929 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 img/my_wx.png diff --git a/README.md b/README.md index 0b01e69..6ab9d2f 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## 反馈 [交流&吐槽](https://github.com/pangudashu/php7-internal/issues/3) [错误反馈](https://github.com/pangudashu/php7-internal/issues/2) -![weixin](img/talk.png) +![](img/my_wx.png) ## 目录: * 第1章 PHP基本架构 diff --git a/img/my_wx.png b/img/my_wx.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6e6ca3a35a8be10285070a8d76fd20ae458b83 GIT binary patch literal 293929 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%0A(338hl~3}gM7o}M&Xye9h-+uj$vGn!u~3jx7SeS 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 literal 0 HcmV?d00001 From 72b51596ad660905d47d534f63e3bd09ad75f112 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 9 Jun 2017 17:45:18 +0800 Subject: [PATCH 14/82] update --- img/my_wx.png | Bin 293929 -> 102921 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/my_wx.png b/img/my_wx.png index 6d6e6ca3a35a8be10285070a8d76fd20ae458b83..bd1a48f1b4730ae910967b54c09b8d5584bed8fd 100644 GIT binary patch literal 102921 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

VVEqd5ncc5ANu&@venS$ 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%0AeW4MAz*I=WvVX!SZ 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 literal 293929 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%0A(338hl~3}gM7o}M&Xye9h-+uj$vGn!u~3jx7SeS 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 From f167bb6dd44ead169610501c4d4afcd0928fd5ae Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 9 Jun 2017 17:48:41 +0800 Subject: [PATCH 15/82] update --- README.md | 2 +- img/{my_wx.png => my_wx2.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename img/{my_wx.png => my_wx2.png} (100%) diff --git a/README.md b/README.md index 6ab9d2f..e213e9c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## 反馈 [交流&吐槽](https://github.com/pangudashu/php7-internal/issues/3) [错误反馈](https://github.com/pangudashu/php7-internal/issues/2) -![](img/my_wx.png) +![](img/my_wx2.png) ## 目录: * 第1章 PHP基本架构 diff --git a/img/my_wx.png b/img/my_wx2.png similarity index 100% rename from img/my_wx.png rename to img/my_wx2.png From fc4943d67dc47cecf7f66294119f13b53dc8a5d9 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 12 Jun 2017 19:06:11 +0800 Subject: [PATCH 16/82] add class register --- 7/class.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7/class.md diff --git a/7/class.md b/7/class.md new file mode 100644 index 0000000..3047459 --- /dev/null +++ b/7/class.md @@ -0,0 +1,54 @@ +## 7.9 面向对象 +### 7.9.1 定义内部类 +在扩展中定义一个内部类的方式与函数类似,函数最终注册到EG(function_table),而类则最终注册到EG(class_table)符号表中,注册的过程首先是为类创建一个zend_class_entry结构,然后把这个结构插入EG(class_table),当然这个过程不需要我们手动操作,PHP提供了现成的方法和宏帮我们对zend_class_entry进行初始化以及注册。通常情况下会把内部类的注册放到module startup阶段,也就是定义在扩展的`PHP_MINIT_FUNCTION()`中,一个简单的类的注册只需要以下几行: +```c +PHP_MINIT_FUNCTION(mytest) +{ + //分配一个zend_class_entry,这个结构只在注册时使用,所以分配在栈上即可 + zend_class_entry ce; + //对zend_class_entry进行初始化 + INIT_CLASS_ENTRY(ce, "MyClass", NULL); + //注册 + zend_register_internal_class(&ce); +} +``` +这样就成功定义了一个内部类,类名为"MyClass",只是这个类还没有任何的成员属性、成员方法,定义完成后重新编译、安装扩展,然后在PHP脚本中实例化这个类: +```php +$obj = new MyClass(); + +var_dump($obj); +``` +结果将输出: +``` +object(MyClass)#1 (0) { +} +``` +注册时传入的zend_class_entry并不是最终插入class_table符号表的结构,zend_register_internal_class()中会重新分配,所以注册时的这个结构分配在栈上即可,此结构的成员不需要手动定义,PHP提供了宏供扩展使用,扩展只需要提供类的主要信息即可,常用的两个宏: +```c +/** + * 初始化zend_class_entry + * class_container:zend_class_entry地址 + * class_name:类名 + * functions:成员方法数组 + */ +#define INIT_CLASS_ENTRY(class_container, class_name, functions) \ + INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL) + +/** + * 初始化zend_class_entry,带namespace + * class_container:zend_class_entry地址 + * ns:命名空间 + * class_name:类名 + * functions:成员方法数组 + */ +#define INIT_NS_CLASS_ENTRY(class_container, ns, class_name, functions) \ + INIT_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns, class_name), functions) +``` + +### 7.9.2 定义成员属性 + +### 7.9.3 定义成员方法 + +### 7.9.4 定义常量 + +### 7.9.5 类的实例化 From b2bb49b0c62f2f262c1014c56c19d18ab4bf31d5 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 13 Jun 2017 10:29:27 +0800 Subject: [PATCH 17/82] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E3=80=81=E5=BC=95=E7=94=A8=E8=AE=A1=E6=95=B0=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 7/var.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++------ README.md | 7 ++-- 2 files changed, 90 insertions(+), 13 deletions(-) diff --git a/7/var.md b/7/var.md index 9869898..e615727 100644 --- a/7/var.md +++ b/7/var.md @@ -64,7 +64,66 @@ zval的类型通过`Z_TYPE(zval)`、`Z_TYPE_P(zval*)`两个宏获取,这个值 #define Z_PTR(zval) (zval).value.ptr #define Z_PTR_P(zval_p) Z_PTR(*(zval_p)) ``` -### 7.7.3 引用计数 +### 7.7.3 类型转换 +```c +//将原类型转为特定类型,会更改原来的值 +ZEND_API void ZEND_FASTCALL convert_to_long(zval *op); +ZEND_API void ZEND_FASTCALL convert_to_double(zval *op); +ZEND_API void ZEND_FASTCALL convert_to_long_base(zval *op, int base); +ZEND_API void ZEND_FASTCALL convert_to_null(zval *op); +ZEND_API void ZEND_FASTCALL convert_to_boolean(zval *op); +ZEND_API void ZEND_FASTCALL convert_to_array(zval *op); +ZEND_API void ZEND_FASTCALL convert_to_object(zval *op); + +#define convert_to_cstring(op) if (Z_TYPE_P(op) != IS_STRING) { _convert_to_cstring((op) ZEND_FILE_LINE_CC); } +#define convert_to_string(op) if (Z_TYPE_P(op) != IS_STRING) { _convert_to_string((op) ZEND_FILE_LINE_CC); } + +//获取格式化为long的值,不会更改原来的值,op类型为zval*,返回值为zend_long +#define zval_get_long(op) _zval_get_long((op)) +//获取格式化为double的值,返回值double +#define zval_get_double(op) _zval_get_double((op)) +//获取格式化为string的值,返回值zend_string * +#define zval_get_string(op) _zval_get_string((op)) + +//字符串转整形 +ZEND_API int ZEND_FASTCALL zend_atoi(const char *str, int str_len); +ZEND_API zend_long ZEND_FASTCALL zend_atol(const char *str, int str_len); + +//判断是否为true +#define zval_is_true(op) \ + zend_is_true(op) +``` +### 7.7.4 引用计数 +在扩展中操作与PHP用户空间相关的变量时需要考虑是否需要对其引用计数进行加减,比如下面这个例子: +```php +function test($arr){ + return $arr; +} + +$a = array(1,2); +$b = test($a); +``` +如果把函数test()用内部函数实现,这个函数接受了一个PHP用户空间传入的数组参数,然后又返回并赋值给了PHP用户空间的另外一个变量,这个时候就需要增加传入数组的refcount,因为这个数组由PHP用户空间分配,函数调用前refcount=1,传到内部函数时相当于赋值给了函数的参数,因此refcount增加了1变为2,这次增加在函数执行完释放参数时会减掉,等返回并赋值给$b后此时共有两个变量指向这个数组,所以内部函数需要增加refcount,增加的引用是给返回值的。test()翻译成内部函数: +```c +PHP_FUNCTION(test) +{ + zval *arr; + + if(zend_parse_parameters(ZEND_NUM_ARGS(), "a", &arr) == FAILURE){ + RETURN_FALSE; + } + //如果注释掉下面这句将导致core dumped + Z_TRY_ADDREF_P(arr); + RETURN_ARR(Z_ARR_P(arr)); +} +``` +那么在哪些情况下需要考虑设置引用计数呢?一个关键条件是:操作的是与PHP用户空间相关的变量,包括对用户空间变量的修改、赋值,要明确的一点是引用计数是用来解决多个变量指向同一个value问题的,所以在PHP中来回传递zval的时候就需要考虑下是不是要修改引用计数,下面总结下PHP中常见的会对引用计数进行操作的情况: +* __(1)变量赋值:__ 变量赋值是最常见的情况,一个用到引用计数的变量类型在初始赋值时其refcount=1,如果后面把此变量又赋值给了其他变量那么就会相应的增加其引用计数 +* __(2)数组操作:__ 如果把一个变量插入数组中那么就需要增加这个变量的引用计数,如果要删除一个数组元素则要相应的减少其引用 +* __(3)函数调用:__ 传参实际可以当做普通的变量赋值,将调用空间的变量赋值给被调函数空间的变量,函数返回时会销毁函数空间的变量,这时又会减掉传参的引用,这两个过程由内核完成,不需要扩展自己处理 +* __(4)成员属性:__ 当把一个变量赋值给对象的成员属性时需要增加引用计数 + +PHP中定义了以下宏用于引用计数的操作: ```c //获取引用数:pz类型为zval* #define Z_REFCOUNT_P(pz) zval_refcount_p(pz) @@ -96,7 +155,22 @@ zval的类型通过`Z_TYPE(zval)`、`Z_TYPE_P(zval*)`两个宏获取,这个值 #define Z_TRY_ADDREF(z) Z_TRY_ADDREF_P(&(z)) #define Z_TRY_DELREF(z) Z_TRY_DELREF_P(&(z)) ``` -### 7.7.4 字符串操作 +这些宏操作类型都是zval或zval*,如果需要操作具体value的引用计数可以使用以下宏: +```c +//直接获取zend_value的引用,可以直接通过这个宏修改value的refcount +#define GC_REFCOUNT(p) (p)->gc.refcount +``` +另外还有几个常用的宏: +```c +//判断zval是否用到引用计数机制 +#define Z_REFCOUNTED(zval) ((Z_TYPE_FLAGS(zval) & IS_TYPE_REFCOUNTED) != 0) +#define Z_REFCOUNTED_P(zval_p) Z_REFCOUNTED(*(zval_p)) + +//根据zval获取value的zend_refcounted头部 +#define Z_COUNTED(zval) (zval).value.counted +#define Z_COUNTED_P(zval_p) Z_COUNTED(*(zval_p)) +``` +### 7.7.5 字符串操作 PHP中字符串(即:zend_string)操作相关的宏及函数: ```c //创建zend_string @@ -145,8 +219,10 @@ zend_bool zend_string_equals(zend_string *s1, zend_string *s2); #define ZSTR_H(zstr) (zstr)->h //获取字符串哈希值 #define ZSTR_HASH(zstr) zend_string_hash_val(zstr) //计算字符串哈希值 ``` -### 7.7.5 数组操作 -#### 7.7.5.1 创建数组 +除了上面这些,还有很多字符串大小转换、字符串比较的API定义在zend_operators.h中,这里不再列举。 + +### 7.7.6 数组操作 +#### 7.7.6.1 创建数组 创建一个新的HashTable分为两步:首先是分配zend_array内存,这个可以通过`ZVAL_NEW_ARR()`宏分配,也可以自己直接分配;然后初始化数组,通过`zend_hash_init()`宏完成,如果不进行初始化数组将无法使用。 ```c #define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \ @@ -166,7 +242,7 @@ uint32_t size; ZVAL_NEW_ARR(&array); zend_hash_init(Z_ARRVAL(array), size, NULL, ZVAL_PTR_DTOR, 0); ``` -#### 7.7.5.2 插入、更新元素 +#### 7.7.6.2 插入、更新元素 数组元素的插入、更新主要有三种情况:key为zend_string、key为普通字符串、key为数值索引,相关的宏及函数: ```c // 1) key为zend_string @@ -220,7 +296,7 @@ zend_hash_init(Z_ARRVAL(array), size, NULL, ZVAL_PTR_DTOR, 0); #define zend_hash_next_index_insert_new(ht, pData) \ _zend_hash_next_index_insert_new(ht, pData ZEND_FILE_LINE_CC) ``` -#### 7.7.5.3 查找元素 +#### 7.7.6.3 查找元素 ```c //根据zend_string key查找数组元素 ZEND_API zval* ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key); @@ -242,7 +318,7 @@ ZEND_API zend_bool ZEND_FASTCALL zend_hash_index_exists(const HashTable *ht, zen //与zend_hash_num_elements()类似,会有一些特殊处理 ZEND_API uint32_t zend_array_count(HashTable *ht); ``` -#### 7.7.5.4 删除元素 +#### 7.7.6.4 删除元素 ```c //删除key ZEND_API int ZEND_FASTCALL zend_hash_del(HashTable *ht, zend_string *key); @@ -254,7 +330,7 @@ ZEND_API int ZEND_FASTCALL zend_hash_str_del_ind(HashTable *ht, const char *key, ZEND_API int ZEND_FASTCALL zend_hash_index_del(HashTable *ht, zend_ulong h); ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p); ``` -#### 7.7.5.5 遍历 +#### 7.7.6.5 遍历 数组遍历类似foreach的用法,在扩展中可以通过如下的方式遍历: ```c zval *val; @@ -298,7 +374,7 @@ ZEND_HASH_FOREACH_VAL(ht, val) { _key = _p->key; \ _val = _z; ``` -#### 7.7.5.6 其它操作 +#### 7.7.6.6 其它操作 ```c //合并两个数组,将source合并到target,overwrite为元素冲突时是否覆盖 #define zend_hash_merge(target, source, pCopyConstructor, overwrite) \ @@ -313,7 +389,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source); ``` 数组排序,compare_func为typedef int (*compare_func_t)(const void *, const void *),需要自己定义比较函数,参数类型为Bucket*,renumber表示是否更改键值,如果为1则会在排序后重新生成各元素的h。PHP中的sort()、rsort()、ksort()等都是基于这个函数实现的。 -#### 7.7.5.7 销毁数组 +#### 7.7.6.7 销毁数组 ```c ZEND_API void ZEND_FASTCALL zend_array_destroy(HashTable *ht); ``` diff --git a/README.md b/README.md index e213e9c..36dd98c 100644 --- a/README.md +++ b/README.md @@ -79,9 +79,10 @@ * [7.7 zval的操作](7/var.md) * [7.7.1 新生成各类型zval](7/var.md) * [7.7.2 获取zval的值及类型](7/var.md) - * [7.7.3 引用计数](7/var.md) - * [7.7.4 字符串操作](7/var.md) - * [7.7.5 数组操作](7/var.md) + * [7.7.3 类型转换](7/var.md) + * [7.7.4 引用计数](7/var.md) + * [7.7.5 字符串操作](7/var.md) + * [7.7.6 数组操作](7/var.md) * [7.8 常量](7/constant.md) * 7.9 面向对象 7.9.1 内部类注册 From 75fad3f0ab266dfc4d5100123f269023bc23ff59 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 13 Jun 2017 20:57:28 +0800 Subject: [PATCH 18/82] =?UTF-8?q?=E5=91=BD=E5=90=8D=E7=A9=BA=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 8/namespace.md | 171 ++++++++++++++++++++++++++++++++++++++++++ img/ast_namespace.png | Bin 0 -> 15279 bytes 2 files changed, 171 insertions(+) create mode 100644 8/namespace.md create mode 100644 img/ast_namespace.png diff --git a/8/namespace.md b/8/namespace.md new file mode 100644 index 0000000..f1cb7ab --- /dev/null +++ b/8/namespace.md @@ -0,0 +1,171 @@ +## 8.1 概述 +什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。(引用自php.net) + +命名空间主要用来解决两类问题: +* 用户编写的代码与PHP内部的或第三方的类、函数、常量、接口名字冲突 +* 为很长的标识符名称创建一个别名的名称,提高源代码的可读性 + +PHP命名空间提供了一种将相关的类、函数、常量和接口组合到一起的途径,不同命名空间的类、函数、常量、接口相互隔离不会冲突,注意:PHP命名空间只能隔离类、函数、常量和接口,不包括全局变量。 + +接下来的两节将介绍下PHP命名空间的内部实现,主要从命名空间的定义及使用两个方面分析。 + +## 8.2 命名空间的定义 +### 8.2.1 定义语法 +命名空间通过关键字namespace 来声明,如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了declare关键字以外,也就是说除declare之外任何代码都不能在namespace之前声明。另外,命名空间并没有文件限制,可以在多个文件中声明同一个命名空间,也可以在同一文件中声明多个命名空间。 +```php +namespace com\aa; + +const MY_CONST = 1234; +function my_func(){ /* ... */ } +class my_class { /* ... */ } +``` +另外也可以通过{}将类、函数、常量封装在一个命名空间下: +```php +namespace com\aa{ + const MY_CONST = 1234; + function my_func(){ /* ... */ } + class my_class { /* ... */ } +} +``` +但是同一个文件中这两种定义方式不能混用,下面这样的定义将是非法的: +```php +namespace com\aa{ + /* ... */ +} + +namespace com\bb; +/* ... */ +``` +### 8.2.2 内部实现 +命名空间的实现实际比较简单,当声明了一个命名空间后,接下来编译类、函数和常量时会把类名、函数名和常量名统一加上命名空间的名称作为前缀存储,也就是说声明在命名空间中的类、函数和常量的实际名称是被修改过的,这样来看他们与普通的定义方式是没有区别的,只是这个前缀是内核帮我们自动添加的,例如: +```php +namespace com\aa; + +const MY_CONST = 1234; +function my_func(){ /* ... */ } +class my_class { /* ... */ } +``` +最终MY_CONST、my_func、my_class在EG(zend_constants)、EG(function_table)、EG(class_table)中的实际存储名称被修改为:com\aa\MY_CONST、com\aa\my_func、com\aa\my_class。 + +下面具体看下编译过程,namespace语法被编译为ZEND_AST_NAMESPACE类型的语法树节点,它有两个子节点:child[0]为命名空间的名称、child[1]为通过{}方式定义时包裹的语句。 + +![](../img/ast_namespace.png) + +此节点的编译函数为zend_compile_namespace(): +```c +void zend_compile_namespace(zend_ast *ast) +{ + zend_ast *name_ast = ast->child[0]; + zend_ast *stmt_ast = ast->child[1]; + zend_string *name; + zend_bool with_bracket = stmt_ast != NULL; + + //检查声明方式,不允许{}与非{}混用 + ... + + if (FC(current_namespace)) { + zend_string_release(FC(current_namespace)); + } + + if (name_ast) { + name = zend_ast_get_str(name_ast); + + if (ZEND_FETCH_CLASS_DEFAULT != zend_get_class_fetch_type(name)) { + zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as namespace name", ZSTR_VAL(name)); + } + //将命名空间名称保存到FC(current_namespace) + FC(current_namespace) = zend_string_copy(name); + } else { + FC(current_namespace) = NULL; + } + + //重置use导入的命名空间符号表 + zend_reset_import_tables(); + ... + if (stmt_ast) { + //如果是通过namespace xxx { ... }这种方式声明的则直接编译{}中的语句 + zend_compile_top_stmt(stmt_ast); + zend_end_namespace(); + } +} +``` +从上面的编译过程可以看出,命名空间定义的编译过程非常简单,最主要的操作是把FC(current_namespace)设置为当前定义的命名空间名称,FC()这个宏为:CG(file_context),前面曾介绍过,file_context是在编译过程中使用的一个结构: +```c +typedef struct _zend_file_context { + zend_declarables declarables; + znode implementing_class; + + //当前所属namespace + zend_string *current_namespace; + //是否在namespace中 + zend_bool in_namespace; + //当前namespace是否为{}定义 + zend_bool has_bracketed_namespaces; + + //下面这三个值在后面介绍use时再说明,这里忽略即可 + HashTable *imports; + HashTable *imports_function; + HashTable *imports_const; +} zend_file_context; +``` +编译完namespace声明语句后接着编译下面的语句,此后定义的类、函数、常量均属于此命名空间,直到遇到下一个namespace的定义,接下来继续分析下这三种类型编译过程中有何不同之处。 + +__(1)编译类、函数__ + +前面章节曾详细介绍过函数、类的编译过程,总结下主要分为两步:第1步是编译函数、类,这个过程将分别生成一条ZEND_DECLARE_FUNCTION、ZEND_DECLARE_CLASS的opcode;第2步是在整个脚本编译的最后执行zend_do_early_binding(),这一步相当于执行ZEND_DECLARE_FUNCTION、ZEND_DECLARE_CLASS,函数、类正是在这一步注册到EG(function_table)、EG(class_table)中去的。 + +在生成ZEND_DECLARE_FUNCTION、ZEND_DECLARE_CLASS两条opcode时会把函数名、类名的存储位置通过操作数记录下来,然后在zend_do_early_binding()阶段直接获取函数名、类名作为key注册到EG(function_table)、EG(class_table)中,定义在命名空间中的函数、类的名称修改正是在生成ZEND_DECLARE_FUNCTION、ZEND_DECLARE_CLASS时完成的,下面以函数为例看下具体的处理: +```c +//函数的编译方法 +void zend_compile_func_decl(znode *result, zend_ast *ast) +{ + ... + //生成函数声明的opcode:ZEND_DECLARE_FUNCTION + zend_begin_func_decl(result, op_array, decl); + + //编译参数、函数体 + ... +} +``` +```c +static void zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_ast_decl *decl) +{ + ... + //获取函数名称 + op_array->function_name = name = zend_prefix_with_ns(unqualified_name); + lcname = zend_string_tolower(name); + + if (FC(imports_function)) { + //如果通过use导入了其他命名空间则检查函数名称是否已存在 + } + .... + //生成一条opcode:ZEND_DECLARE_FUNCTION + opline = get_next_op(CG(active_op_array)); + opline->opcode = ZEND_DECLARE_FUNCTION; + //函数名的存储位置记录在op2中 + opline->op2_type = IS_CONST; + LITERAL_STR(opline->op2, zend_string_copy(lcname)); + ... +} +``` +函数名称通过zend_prefix_with_ns()方法获取: +```c +zend_string *zend_prefix_with_ns(zend_string *name) { + if (FC(current_namespace)) { + //如果当前是在namespace下则拼上namespace名称作为前缀 + zend_string *ns = FC(current_namespace); + return zend_concat_names(ZSTR_VAL(ns), ZSTR_LEN(ns), ZSTR_VAL(name), ZSTR_LEN(name)); + } else { + return zend_string_copy(name); + } +} +``` +在zend_prefix_with_ns()方法中如果发现FC(current_namespace)不为空则将函数名加上FC(current_namespace)作为前缀,接下来向EG(function_table)注册时就使用修改后的函数名作为key,类的情况与函数的处理方式相同,不再赘述。 + +__(2)编译常量__ + +常量的编译过程与函数、类基本相同,也是在编译过程获取常量名时检查FC(current_namespace)是否为空,如果不为空表示常量声明在namespace下,则为常量名加上FC(current_namespace)前缀。 + +总结下命名空间的定义:编译时如果发现定义了一个namespace,则将命名空间名称保存到FC(current_namespace),编译类、函数、常量时先判断FC(current_namespace)是否为空,如果为空则按正常名称编译,如果不为空则将类名、函数名、常量名加上FC(current_namespace)作为前缀,然后再以修改后的名称注册。整个过程相当于PHP帮我们补全了类名、函数名、常量名。 + +## 8.3 使用命名空间 diff --git a/img/ast_namespace.png b/img/ast_namespace.png new file mode 100644 index 0000000000000000000000000000000000000000..3396f8fdf86ab9484b5c448eaaaa1dacfc4515fb GIT binary patch literal 15279 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 bDRmsAuX6j{Fl@<1K~a3DD*F*>67+unOy=ZM literal 0 HcmV?d00001 From 4e454cc8cb5bdb5d0328b22b87d7ed2058d6c566 Mon Sep 17 00:00:00 2001 From: ZiMuyang Date: Tue, 13 Jun 2017 23:25:54 +0800 Subject: [PATCH 19/82] Create zval.md --- 2/zval.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2/zval.md b/2/zval.md index a0e2b22..6f96b7e 100644 --- a/2/zval.md +++ b/2/zval.md @@ -13,7 +13,7 @@ $b = 1; ### 2.1.1 变量的基础结构 ```c -//zend_type.h +//zend_types.h typedef struct _zval_struct zval; typedef union _zend_value { @@ -259,7 +259,7 @@ $a,$b -> zend_string_1(refcount=0,val="hi~") |reference | Y | ``` simple types很显然用不到,不再解释,string、array、object、resource、reference有引用计数机制也很容易理解,下面具体解释下另外两个特殊的类型: -* __interned string:__ 内部字符串,这是种什么类型?我们在PHP中写的所有字符都可以认为是这种类型,比如function name、class name、variable name、静态字符串等等,我们这样定义:`$a = "hi~;"`后面的字符串内容是唯一不变的,这些字符串等同于C语言中定义在静态变量区的字符串:`char *a = "hi~";`,这些字符串的生命周期为request期间,request完成后会统一销毁释放,自然也就无需在运行期间通过引用计数管理内存。 +* __interned string:__ 内部字符串,这是种什么类型?我们在PHP中写的所有字符都可以认为是这种类型,比如function name、class name、variable name、静态字符串等等,我们这样定义:`$a = "hi~";`后面的字符串内容是唯一不变的,这些字符串等同于C语言中定义在静态变量区的字符串:`char *a = "hi~";`,这些字符串的生命周期为request期间,request完成后会统一销毁释放,自然也就无需在运行期间通过引用计数管理内存。 * __immutable array:__ 只有在用opcache的时候才会用到这种类型,不清楚具体实现,暂时忽略。 From 31f60c1be7410632383cb0d4a6effabf695dbc00 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 14 Jun 2017 14:13:22 +0800 Subject: [PATCH 20/82] add namespace --- 8/namespace.md | 102 ++++++++++++++++++++++++++++++++++++++++++ img/namespace_com.png | Bin 0 -> 12143 bytes 2 files changed, 102 insertions(+) create mode 100644 img/namespace_com.png diff --git a/8/namespace.md b/8/namespace.md index f1cb7ab..62ee4c8 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -36,9 +36,12 @@ namespace com\aa{ namespace com\bb; /* ... */ ``` +如果没有定义任何命名空间,所有的类、函数和常量的定义都是在全局空间,与 PHP 引入命名空间概念前一样。 + ### 8.2.2 内部实现 命名空间的实现实际比较简单,当声明了一个命名空间后,接下来编译类、函数和常量时会把类名、函数名和常量名统一加上命名空间的名称作为前缀存储,也就是说声明在命名空间中的类、函数和常量的实际名称是被修改过的,这样来看他们与普通的定义方式是没有区别的,只是这个前缀是内核帮我们自动添加的,例如: ```php +//ns_define.php namespace com\aa; const MY_CONST = 1234; @@ -169,3 +172,102 @@ __(2)编译常量__ 总结下命名空间的定义:编译时如果发现定义了一个namespace,则将命名空间名称保存到FC(current_namespace),编译类、函数、常量时先判断FC(current_namespace)是否为空,如果为空则按正常名称编译,如果不为空则将类名、函数名、常量名加上FC(current_namespace)作为前缀,然后再以修改后的名称注册。整个过程相当于PHP帮我们补全了类名、函数名、常量名。 ## 8.3 使用命名空间 +### 8.3.1 基本使用 +上一节我们知道了定义在命名空间中的类、函数和常量只是加上了namespace名称作为前缀,既然是这样那么在使用时加上同样的前缀是否就可以了呢?答案是肯定的,比如上面那个例子:在com\aa命名空间下定义了一个常量MY_CONST,那么就可以这么使用: +```php +include 'ns_define.php'; + +echo \com\aa\MY_CONST; +``` +这种按照实际类名、函数名、常量名使用的方式很容易理解,与普通的类型没有差别,这种以"\"开头使用的名称称之为:完全限定名称,类似于绝对目录的概念,使用这种名称PHP会直接根据"\"之后的名称去对应的符号表中查找(namespace定义时前面是没有加"\"的,所以查找时也会去掉这个字符)。 + +除了这种形式的名称之外,还有两种形式的名称: +* __非限定名称:__ 即没有加任何namespace前缀的普通名称,比如my_func(),使用这种名称时如果当前有命名空间则会被解析为:currentnamespace\my_func,如果当前没有命名空间则按照原始名称my_func解析 +* __部分限定名称:__ 即包含namespace前缀,但不是以"\"开始的,比如:aa\my_func(),类似相对路径的概念,这种名称解析规则比较复杂,如果当前空间没有使用use导入任何namespace那么与非限定名称的解析规则相同,即如果当前有命名空间则会把解析为:currentnamespace\aa\my_func,否则解析为aa\my_func,使用use的情况后面再作说明 + +### 8.3.2 use导入 +使用一个命名空间中的类、函数、常量虽然可以通过完全限定名称的形式访问,但是这种方式需要在每一处使用的地方都加上完整的namespace名称,如果将来namespace名称变更了就需要所有使用的地方都改一遍,这将是很痛苦的一件事,为此,PHP提供了一种命名空间导入/别名的机制,可以通过use关键字将一个命名空间导入或者定义一个别名,然后在使用时就可以通过导入的namespace名称最后一个域或者别名访问,不需要使用完整的名称,比如: +```php +//ns_define.php +namespace aa\bb\cc\dd; + +const MY_CONST = 1234; +``` +可以采用如下几种方式使用: +```php +//方式1: +include 'ns_define.php'; + +use aa\bb\cc\dd; + +echo dd\MY_CONST; +``` +```php +//方式2: +include 'ns_define.php'; + +use aa\bb\cc; + +echo cc\dd\MY_CONST; +``` +```php +//方式3: +include 'ns_define.php'; + +use aa\bb\cc\dd as DD; + +echo DD\MY_CONST; +``` +```php +//方式4: +include 'ns_define.php'; + +use aa\bb\cc as CC; + +echo CC\dd\MY_CONST; +``` +这种机制的实现原理也比较简单:编译期间如果发现use语句 ,那么就将把这个use后的命名空间名称插入一个哈希表:FC(imports),而哈希表的key就是定义的别名,如果没有定义别名则key使用按"\"分割的最后一节,比如方式2的情况将以cc作为key,即:FC(imports)["cc"] = "aa\bb\cc\dd";接下来在使用类、函数和常量时会把名称按"\"分割,然后以第一节为key查找FC(imports),如果找到了则将FC(imports)中保存的名称与使用时的名称拼接在一起,组成完整的名称。实际上这种机制是把完整的名称切割缩短然后缓存下来,使用时再拼接成完整的名称,也就是内核帮我们组装了名称,对内核而言,最终使用的都是包括完整namespace的名称。 + +![](../img/namespace_com.png) + +use除了上面介绍的用法外还可以导入一个类,导入后再使用类就不需要加namespace了,例如: +```php +//ns_define.php +namespace aa\bb\cc\dd; + +class my_class { /* ... */ } +``` +```php +include 'ns_define.php'; +//导入一个类 +use aa\bb\cc\dd\my_class; +//直接使用 +$obj = new my_class(); +var_dump($obj); +``` +use的这两种用法实现原理是一样的,都是在编译时通过查找FC(imports)实现的名称补全。从PHP 5.6起,use又提供了两种针对函数、常量的导入,可以通过`use function xxx`及`use const xxx`导入一个函数、常量,这种用法的实现原理与上面介绍的实际是相同,只是在编译时没有保存到FC(imports),zend_file_context结构中的另外两个哈希表就是在这种情况下使用的: +```c +typedef struct _zend_file_context { + ... + //用于保存导入的类或命名空间 + HashTable *imports; + //用于保存导入的函数 + HashTable *imports_function; + //用于保存导入的常量 + HashTable *imports_const; +} zend_file_context; +``` +简单总结下use的几种不同用法: +* __a.导入命名空间:__ 导入的名称保存在FC(imports)中,编译使用的语句时搜索此符号表进行补全 +* __b.导入类:__ 导入的名称保存在FC(imports)中,与a不同的时如果不会根据"\"切割后的最后一节检索,而是直接使用类名查找 +* __c.导入函数:__ 通过`use function`导入到FC(imports_function),补全时先查找FC(imports_function),如果没有找到则继续按照a的情况处理 +* __d.导入常量:__ 通过`use const`导入到FC(imports_const),不全是先查找FC(imports_const),如果没有找到则继续按照a的情况处理 + +比如: +```php +use aa\bb; //导入namespace +use aa\bb\MY_CLASS; //导入类 +use function aa\bb\my_func; //导入函数 +use const aa\bb\MY_CONST; //导入常量 +``` + diff --git a/img/namespace_com.png b/img/namespace_com.png new file mode 100644 index 0000000000000000000000000000000000000000..7c83a7afbed87d4439b016f807044458f4e17a1c GIT binary patch literal 12143 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 literal 0 HcmV?d00001 From 63ddbbe0e03cba31eb5270d064419a42e6fea607 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 14 Jun 2017 18:14:19 +0800 Subject: [PATCH 21/82] finish namespace --- 8/namespace.md | 168 ++++++++++++++++++++++++++++++++++++++++++++++++- README.md | 11 +++- 2 files changed, 177 insertions(+), 2 deletions(-) diff --git a/8/namespace.md b/8/namespace.md index 62ee4c8..38af53b 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -263,11 +263,177 @@ typedef struct _zend_file_context { * __c.导入函数:__ 通过`use function`导入到FC(imports_function),补全时先查找FC(imports_function),如果没有找到则继续按照a的情况处理 * __d.导入常量:__ 通过`use const`导入到FC(imports_const),不全是先查找FC(imports_const),如果没有找到则继续按照a的情况处理 -比如: ```php use aa\bb; //导入namespace use aa\bb\MY_CLASS; //导入类 use function aa\bb\my_func; //导入函数 use const aa\bb\MY_CONST; //导入常量 ``` +接下来看下内核的具体实现,首先看下use的编译: +```c +void zend_compile_use(zend_ast *ast) +{ + zend_string *current_ns = FC(current_namespace); + //use的类型 + uint32_t type = ast->attr; + //根据类型获取存储哈希表:FC(imports)、FC(imports_function)、FC(imports_const) + HashTable *current_import = zend_get_import_ht(type); + ... + //use可以同时导入多个 + for (i = 0; i < list->children; ++i) { + zend_ast *use_ast = list->child[i]; + zend_ast *old_name_ast = use_ast->child[0]; + zend_ast *new_name_ast = use_ast->child[1]; + //old_name为use后的namespace名称,new_name为as定义的别名 + zend_string *old_name = zend_ast_get_str(old_name_ast); + zend_string *new_name, *lookup_name; + + if (new_name_ast) { + //如果有as别名则直接使用 + new_name = zend_string_copy(zend_ast_get_str(new_name_ast)); + } else { + const char *unqualified_name; + size_t unqualified_name_len; + if (zend_get_unqualified_name(old_name, &unqualified_name, &unqualified_name_len)) { + //按"\"分割,取最后一节为new_name + new_name = zend_string_init(unqualified_name, unqualified_name_len, 0); + } else { + //名称中没有"\":use aa + new_name = zend_string_copy(old_name); + } + } + //如果是use const则大小写敏感,其它用法都转为小写 + if (case_sensitive) { + lookup_name = zend_string_copy(new_name); + } else { + lookup_name = zend_string_tolower(new_name); + } + ... + if (current_ns) { + //如果当前是在命名空间中则需要检查名称是否冲突 + ... + } + + //插入FC(imports/imports_function/imports_const),key为lookup_name,value为old_name + if (!zend_hash_add_ptr(current_import, lookup_name, old_name)) { + ... + } + } +} +``` +从use的编译过程可以看到,编译时的主要处理是把use导入的名称以别名或最后分节为key存储到对应的哈希表中,接下来我们看下在编译使用类、函数、常量的语句时是如何处理的。使用的语法类型比较多,比如类的使用就有new、访问静态属性、调用静态方法等,但是不管什么语句都会经历获取类名、函数名、常量名这一步,类名的补全就是在这一步完成的。 + +__(1)补全类名__ + +编译时通过zend_resolve_class_name()方法进行类名补全,如果没有任何namespace那么就返回原始的类名,比如编译`new my_class()`时,首先会把"my_class"传入该函数,如果查找FC(imports)后发现是一个use导入的类则把补全后的完整名称返回,然后再进行后续的处理。 +```c +zend_string *zend_resolve_class_name(zend_string *name, uint32_t type) +{ + char *compound; + //"namespace\xxx\类名"这种用法表示使用当前命名空间 + if (type == ZEND_NAME_RELATIVE) { + return zend_prefix_with_ns(name); + } + + //完全限定的形式:new \aa\bb\my_class() + if (type == ZEND_NAME_FQ || ZSTR_VAL(name)[0] == '\\') { + if (ZSTR_VAL(name)[0] == '\\') { + name = zend_string_init(ZSTR_VAL(name) + 1, ZSTR_LEN(name) - 1, 0); + } else { + zend_string_addref(name); + } + ... + return name; + } + + //如果当前脚本有通过use导入namespace + if (FC(imports)) { + compound = memchr(ZSTR_VAL(name), '\\', ZSTR_LEN(name)); + if (compound) { + // 1) 没有直接导入一个类的情况,用法a + //名称中包括"\",比如:new aa\bb\my_class() + size_t len = compound - ZSTR_VAL(name); + //根据按"\"分割后的最后一节为key查找FC(imports) + zend_string *import_name = + zend_hash_find_ptr_lc(FC(imports), ZSTR_VAL(name), len); + //如果找到了表示通过use导入了namespace + if (import_name) { + return zend_concat_names( + ZSTR_VAL(import_name), ZSTR_LEN(import_name), ZSTR_VAL(name) + len + 1, ZSTR_LEN(name) - len - 1); + } + } else { + // 2) 通过use导入一个类的情况,用法b + //直接根据原始类名查找 + zend_string *import_name + = zend_hash_find_ptr_lc(FC(imports), ZSTR_VAL(name), ZSTR_LEN(name)); + + if (import_name) { + return zend_string_copy(import_name); + } + } + } + //没有使用use或没命中任何use导入的namespace,按照基本用法处理:如果当前在一个namespace下则解释为currentnamespace\my_class + return zend_prefix_with_ns(name); +} +``` +此方法除了类的名称后还有一个type参数,这个参数是解析语法是根据使用方式确定的,共有三种类型: +* __ZEND_NAME_NOT_FQ:__ 非限定名称,也就是普通的类名,没有加namespace,比如:new my_class() +* __ZEND_NAME_RELATIVE:__ 相对名称,强制按照当前所属命名空间解析,使用时通过在类前加"namespace\xx",比如:new namespace\my_class(),如果当前是全局空间则等价于:new my_class,如果当前命名空间为currentnamespace,则解析为"currentnamespace\my_class" +* __ZEND_NAME_FQ:__ 完全限定名称,即以"\"开头的 + +__(2)补全函数名、常量名__ + +函数与常量名称的补全操作是相同的: +```c +//补全函数名称 +zend_string *zend_resolve_function_name(zend_string *name, uint32_t type, zend_bool *is_fully_qualified) +{ + return zend_resolve_non_class_name( + name, type, is_fully_qualified, 0, FC(imports_function)); +} +//补全常量名称 +zend_string *zend_resolve_const_name(zend_string *name, uint32_t type, zend_bool *is_fully_qualified) + return zend_resolve_non_class_name( + name, type, is_fully_qualified, 1, FC(imports_const)); +} +``` +可以看到函数与常量最终调用同一方法处理,不同点在于传入了各自的存储哈希表: +```c +zend_string *zend_resolve_non_class_name( + zend_string *name, uint32_t type, zend_bool *is_fully_qualified, + zend_bool case_sensitive, HashTable *current_import_sub +) { + char *compound; + *is_fully_qualified = 0; + //完整名称,直接返回,不需要补全 + if (ZSTR_VAL(name)[0] == '\\') { + *is_fully_qualified = 1; + return zend_string_init(ZSTR_VAL(name) + 1, ZSTR_LEN(name) - 1, 0); + } + //与类的用法相同 + if (type == ZEND_NAME_RELATIVE) { + *is_fully_qualified = 1; + return zend_prefix_with_ns(name); + } + //current_import_sub如果是函数则为FC(imports_function),否则为FC(imports_const) + if (current_import_sub) { + //查找FC(imports_function)或FC(imports_const) + ... + } + //查找FC(imports) + compound = memchr(ZSTR_VAL(name), '\\', ZSTR_LEN(name)); + ... + + return zend_prefix_with_ns(name); +} +``` +可以看到,函数与常量的的补全逻辑只是优先用原始名称去FC(imports_function)或FC(imports_const)查找,如果没有找到再去FC(imports)中匹配。如果我们这样导入了一个函数:`use aa\bb\my_func;`,编译`my_func()`会在FC(imports_function)中根据"my_func"找到"aa\bb\my_func",从而使用完整的这个名称。 + +### 8.3.3 动态使用 +前面介绍的这些命名空间的使用都是名称为CONST类型的情况,所有的处理都是在编译环节完成的,PHP是动态语言,能否动态使用命名空间呢?举个例子: +```php +$class_name = "\aa\bb\my_class"; +$obj = new $class_name; +``` +如果类似这样的用法只能只用完全限定名称,也就是按照实际存储的名称使用,无法进行自动名称补全。 diff --git a/README.md b/README.md index 36dd98c..0fcbe4d 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,16 @@ * 7.11 经典扩展解析 * 7.8.1 Yaf * 7.8.2 Redis - +* 第8章 命名空间 + * [8.1 概述](8/namespace.md) + * [8.2 命名空间的定义](8/namespace.md) + * [8.2.1 定义语法](8/namespace.md) + * [8.2.2 内部实现](8/namespace.md) + * [8.3 命名空间的使用](8/namespace.md) + * [8.3.1 基本用法](8/namespace.md) + * [8.3.2 use导入](8/namespace.md) + * [8.3.3 动态用法](8/namespace.md) + ## 附录 * [附录1:break/continue按标签中断语法实现](try/break.md) From 336032b0b71c96f5ac2588632976e2d15895cb05 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 14 Jun 2017 18:16:59 +0800 Subject: [PATCH 22/82] update --- 8/namespace.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/8/namespace.md b/8/namespace.md index 38af53b..b9b7c6d 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -171,8 +171,8 @@ __(2)编译常量__ 总结下命名空间的定义:编译时如果发现定义了一个namespace,则将命名空间名称保存到FC(current_namespace),编译类、函数、常量时先判断FC(current_namespace)是否为空,如果为空则按正常名称编译,如果不为空则将类名、函数名、常量名加上FC(current_namespace)作为前缀,然后再以修改后的名称注册。整个过程相当于PHP帮我们补全了类名、函数名、常量名。 -## 8.3 使用命名空间 -### 8.3.1 基本使用 +## 8.3 命名空间的使用 +### 8.3.1 基本用法 上一节我们知道了定义在命名空间中的类、函数和常量只是加上了namespace名称作为前缀,既然是这样那么在使用时加上同样的前缀是否就可以了呢?答案是肯定的,比如上面那个例子:在com\aa命名空间下定义了一个常量MY_CONST,那么就可以这么使用: ```php include 'ns_define.php'; @@ -429,7 +429,7 @@ zend_string *zend_resolve_non_class_name( ``` 可以看到,函数与常量的的补全逻辑只是优先用原始名称去FC(imports_function)或FC(imports_const)查找,如果没有找到再去FC(imports)中匹配。如果我们这样导入了一个函数:`use aa\bb\my_func;`,编译`my_func()`会在FC(imports_function)中根据"my_func"找到"aa\bb\my_func",从而使用完整的这个名称。 -### 8.3.3 动态使用 +### 8.3.3 动态用法 前面介绍的这些命名空间的使用都是名称为CONST类型的情况,所有的处理都是在编译环节完成的,PHP是动态语言,能否动态使用命名空间呢?举个例子: ```php $class_name = "\aa\bb\my_class"; From c97fe96976814da415db1e5eb9e88e73929d2c9c Mon Sep 17 00:00:00 2001 From: ZiMuyang Date: Thu, 15 Jun 2017 21:53:50 +0800 Subject: [PATCH 23/82] Update zend_compile_opcode.md --- 3/zend_compile_opcode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_compile_opcode.md b/3/zend_compile_opcode.md index a8fde50..6969c1a 100644 --- a/3/zend_compile_opcode.md +++ b/3/zend_compile_opcode.md @@ -516,7 +516,7 @@ void zend_compile_expr(znode *result, zend_ast *ast) ``` >> __第3步:__ 上面两步已经分别生成了变量赋值的op1、op2,下面就是根据这俩值生成opcode的过程。 ```c -tatic zend_op *zend_emit_op(znode *result, zend_uchar opcode, znode *op1, znode *op2) +static zend_op *zend_emit_op(znode *result, zend_uchar opcode, znode *op1, znode *op2) { zend_op *opline = get_next_op(CG(active_op_array)); //当前zend_op_array下生成一条新的指令 opline->opcode = opcode; From 83bd270acc27f43fb2b2d4230f16eaf3bfe10c4e Mon Sep 17 00:00:00 2001 From: ZiMuyang Date: Fri, 16 Jun 2017 18:36:07 +0800 Subject: [PATCH 24/82] Update function_implement.md --- 3/function_implement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/function_implement.md b/3/function_implement.md index 5373d41..d3c0fe6 100644 --- a/3/function_implement.md +++ b/3/function_implement.md @@ -8,7 +8,7 @@ function my_func(){ ... } ``` -汇编中函数对应的是一组独立的汇编指令,然后通过call指令实现函数的调用,前面已经说过PHP编译的结果是opcode数组,与汇编指令对应,PHP用户自定义函数的实现就是将函数编译为独立的opcode数组,调用时分配独立的执行栈依次执行opcode,所以自定义函数对于zend而言并没有什么特别之处,只是将opcode进行了打包封装,实际PHP脚本中函数之外的指令整个可以认为是一个函数(或者理解为main函数更直观)。 +汇编中函数对应的是一组独立的汇编指令,然后通过call指令实现函数的调用。前面已经说过PHP编译的结果是opcode数组,与汇编指令对应。PHP用户自定义函数的实现就是将函数编译为独立的opcode数组,调用时分配独立的执行栈依次执行opcode,所以自定义函数对于zend而言并没有什么特别之处,只是将opcode进行了打包封装。PHP脚本中函数之外的指令,整个可以认为是一个函数(或者理解为main函数更直观)。 ```php /* function main(){ */ From 8db476b8d37c0f44f7dd2ecfc68357134df671c0 Mon Sep 17 00:00:00 2001 From: ZiMuyang Date: Fri, 16 Jun 2017 21:48:32 +0800 Subject: [PATCH 25/82] Update zend_executor.md --- 3/zend_executor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_executor.md b/3/zend_executor.md index d589492..b1ed95d 100644 --- a/3/zend_executor.md +++ b/3/zend_executor.md @@ -62,7 +62,7 @@ ZEND_API zend_executor_globals executor_globals; struct _zend_execute_data { const zend_op *opline; //指向当前执行的opcode,初始时指向zend_op_array起始位置 zend_execute_data *call; /* current call */ - zval *return_value; //返回值指针 */ + zval *return_value; //返回值指针 zend_function *func; //当前执行的函数(非函数调用时为空) zval This; //这个值并不仅仅是面向对象的this,还有另外两个值也通过这个记录:call_info + num_args,分别存在zval.u1.reserved、zval.u2.num_args zend_class_entry *called_scope; //当前call的类 From fdaf1f89600cf1b79714727fb104f804adc042de Mon Sep 17 00:00:00 2001 From: ZiMuyang Date: Sat, 17 Jun 2017 22:57:44 +0800 Subject: [PATCH 26/82] Update zend_object.md --- 3/zend_object.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_object.md b/3/zend_object.md index cf44ef7..756d2fa 100644 --- a/3/zend_object.md +++ b/3/zend_object.md @@ -437,7 +437,7 @@ static int zend_std_compare_objects(zval *o1, zval *o2) "==="的比较通过函数`zend_is_identical()`处理,比较简单,这里不再展开。 #### 3.4.2.6 对象的销毁 -object与string、array等类型不同,它是个符合类型,所以它的销毁过程更加复杂,赋值、函数调用结束或主动unset等操作中如果发现object引用计数为0则将触发销毁动作。 +object与string、array等类型不同,它是个复合类型,所以它的销毁过程更加复杂,赋值、函数调用结束或主动unset等操作中如果发现object引用计数为0则将触发销毁动作。 ```php //情况1 $obj1 = new my_function(); From fda9bae85f3252a554e9a747f257dba9bf67e238 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 22 Jun 2017 13:55:03 +0800 Subject: [PATCH 27/82] update zendmm --- 5/zend_alloc.md | 58 ++++++++++++++++++++++++++++++++++++++++++-- img/align.png | Bin 0 -> 6006 bytes img/chunk_alloc.png | Bin 0 -> 3805 bytes 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 img/align.png create mode 100644 img/chunk_alloc.png diff --git a/5/zend_alloc.md b/5/zend_alloc.md index 5fe35aa..df3fa05 100644 --- a/5/zend_alloc.md +++ b/5/zend_alloc.md @@ -151,7 +151,56 @@ static void *zend_mm_alloc_huge(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D return ptr; } ``` -huge的分配过程还是比较简单的。 +huge的分配实际就是分配多个chunk,chunk的分配也是large、small内存分配的基础,它是ZendMM向系统申请内存的唯一粒度。在申请chunk内存时有一个关键操作,那就是将内存地址对齐到ZEND_MM_CHUNK_SIZE,也就是说申请的chunk地址都是ZEND_MM_CHUNK_SIZE的整数倍,注意:这里说的内存对齐值并不是系统的字节对齐值,所以需要在申请后自己调整下。ZendMM的处理方法是:先按实际要申请的内存大小申请一次,如果系统分配的地址恰好是ZEND_MM_CHUNK_SIZE的整数倍那么就不需要调整了,直接返回使用;如果不是ZEND_MM_CHUNK_SIZE的整数倍,ZendMM会把这块内存释放掉,然后按照"实际要申请的内存大小+ZEND_MM_CHUNK_SIZE"的大小重新申请一块内存,多申请的ZEND_MM_CHUNK_SIZE大小的内存是用来调整的,ZendMM会从系统分配的地址向后偏移到ZEND_MM_CHUNK_SIZE的整数倍位置,调整完以后会把多余的内存再释放掉,如下图所示,虚线部分为alignment大小的内容,灰色部分为申请的内容大小,系统返回的地址为ptr1,而实际使用的内存是从ptr2开始的。 + +![](../img/chunk_alloc.png) + +下面看下chunk的具体分配过程: +```c +//size为申请内存的大小,alignment为内存对齐值,一般为ZEND_MM_CHUNK_SIZE +static void *zend_mm_chunk_alloc_int(size_t size, size_t alignment) +{ + //向系统申请size大小的内存 + void *ptr = zend_mm_mmap(size); + if (ptr == NULL) { + return NULL; + } else if (ZEND_MM_ALIGNED_OFFSET(ptr, alignment) == 0) {//判断申请的内存是否为alignment的整数倍 + //是的话直接返回 + return ptr; + }else{ + //申请的内存不是按照alignment对齐的,注意这里的alignment并不是系统的字节对齐值 + size_t offset; + + //将申请的内存释放掉重新申请 + zend_mm_munmap(ptr, size); + //重新申请一块内存,这里会多申请一块内存,用于截取到alignment的整数倍,可以忽略REAL_PAGE_SIZE + ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE); + //offset为ptr距离上一个alignment对齐内存位置的大小,注意不能往前移,因为前面的内存都是分配了的 + offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment); + if (offset != 0) { + offset = alignment - offset; + zend_mm_munmap(ptr, offset); + //偏移ptr,对齐到alignment + ptr = (char*)ptr + offset; + alignment -= offset; + } + if (alignment > REAL_PAGE_SIZE) { + zend_mm_munmap((char*)ptr + size, alignment - REAL_PAGE_SIZE); + } + return ptr; + } +} +``` +这个过程中用到了一个宏: +```c +#define ZEND_MM_ALIGNED_OFFSET(size, alignment) \ + (((size_t)(size)) & ((alignment) - 1)) +``` +这个宏的作用是计算按alignment对齐的内存地址距离上一个alignment整数倍内存地址的大小,alignment必须为2的n次方,比如一段n*alignment大小的内存,ptr为其中一个位置,那么就可以通过位运算计算得到ptr所属内存块的offset: + +![](../img/align.png) + +这个位运算是因为alignment为2^n,所以可以通过alignment取到最低位的位置,也就是相对上一个整数倍alignment的offset,实际如果不用运算的话可以通过:`offset = (ptr/alignment取整)*alignment - ptr`得到,这个更容易理解些。 #### 5.1.3.2 Large分配 大于3/4的page_size(4KB)且小于等于511个page_size的内存申请,也就是一个chunk的大小够用(之所以是511个page而不是512个是因为第一个page始终被chunk结构占用),__如果申请多个page的话 分配的时候这些page都是连续的__ 。 @@ -352,7 +401,9 @@ ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR static zend_always_inline void zend_mm_free_heap(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); //根据内存地址及对齐值判断内存地址偏移量是否为0,是的话只有huge情况符合,page、slot分配出的内存地址偏移量一定是>=ZEND_MM_CHUNK_SIZE的,因为第一页始终被chunk自身结构占用,不可能分配出去 + //根据内存地址及对齐值判断内存地址偏移量是否为0,是的话只有huge情况符合,page、slot分配出的内存地>址偏移量一定是>=ZEND_MM_CHUNK_SIZE的,因为第一页始终被chunk自身结构占用,不可能分配出去 + //offset就是ptr距离当前chunk起始位置的偏移量 + size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); if (UNEXPECTED(page_offset == 0)) { if (ptr != NULL) { @@ -360,6 +411,7 @@ static zend_always_inline void zend_mm_free_heap(zend_mm_heap *heap, void *ptr Z zend_mm_free_huge(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } } else { //page或slot,根据chunk->map[]值判断当前page的分配类型 + //根据ptr获取chunk的起始位置 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE); int page_num = (int)(page_offset / ZEND_MM_PAGE_SIZE); zend_mm_page_info info = chunk->map[page_num]; @@ -377,6 +429,8 @@ static zend_always_inline void zend_mm_free_heap(zend_mm_heap *heap, void *ptr Z } } ``` +释放的内存地址可能是chunk中间的任意位置,因为chunk分配时是按照ZEND_MM_CHUNK_SIZE对齐的,也就是chunk的起始内存地址一定是ZEND_MM_CHUNK_SIZE的整数倍,所以可以根据chunk上的任意位置知道chunk的起始位置。 + 释放page的过程有一个地方值得注意,如果释放后发现当前chunk所有page都已经被释放则可能会释放所在chunk,还记得heap->cached_chunks吗?内存池会维持一定的chunk数,每次释放并不会直接销毁而是加入到cached_chunks中,这样下次申请chunk时直接就用了,同时为了防止占用过多内存,cached_chunks会根据每次request请求计算的chunk使用均值保证其维持在一定范围内。 每次request请求结束会对内存池进行一次清理,检查cache的chunk数是否超过均值,超过的话就进行清理,具体的操作:`zend_mm_shutdown`,这里不再展开。 diff --git a/img/align.png b/img/align.png new file mode 100644 index 0000000000000000000000000000000000000000..63d6e125e6ef467ec83ee41ba6c97a3f4318d77e GIT binary patch literal 6006 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 G&;AFk+Quya literal 0 HcmV?d00001 diff --git a/img/chunk_alloc.png b/img/chunk_alloc.png new file mode 100644 index 0000000000000000000000000000000000000000..049b76d3ffcc3c00042693512c593f8c4c065b52 GIT binary patch literal 3805 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 literal 0 HcmV?d00001 From 50d5eab2b39852d302270f119ee6f619159cce37 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 22 Jun 2017 17:03:39 +0800 Subject: [PATCH 28/82] fix error --- 1/fpm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1/fpm.md b/1/fpm.md index 49f961f..cea236c 100644 --- a/1/fpm.md +++ b/1/fpm.md @@ -236,8 +236,8 @@ worker处理到各个阶段时将会把当前阶段更新到`fpm_scoreboard_proc ```c void fpm_event_loop(int err) { - //创建一个io read的监听事件,这里监听的就是在fpm_init()阶段中通过socketpair()创建管道sp[1] - //当sp[1]可读时将回调fpm_got_signal() + //创建一个io read的监听事件,这里监听的就是在fpm_init()阶段中通过socketpair()创建管道sp[0] + //当sp[0]可读时将回调fpm_got_signal() fpm_event_set(&signal_fd_event, fpm_signals_get_fd(), FPM_EV_READ, &fpm_got_signal, NULL); fpm_event_add(&signal_fd_event, 0); From 17191469cab1e1fc29ae7830983dd17f6c38b3cb Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 27 Jun 2017 20:01:01 +0800 Subject: [PATCH 29/82] update --- 2/zend_ht.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/2/zend_ht.md b/2/zend_ht.md index 95d8177..56c818c 100644 --- a/2/zend_ht.md +++ b/2/zend_ht.md @@ -61,6 +61,8 @@ unset($arr["c"]); ![](../img/zend_hash_1.png) +> 图中Bucket的zval.u2.next默认值应该为-1,不是0 + ### 2.2.2 映射函数 映射函数(即:散列函数)是散列表的关键部分,它将key与value建立映射关系,一般映射函数可以根据key的哈希值与Bucket数组大小取模得到,即`key->h % ht->nTableSize`,但是PHP却不是这么做的: ```c From 561a23b2e7c6062a7b5e1562d814758218d321a5 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 29 Jun 2017 18:55:22 +0800 Subject: [PATCH 30/82] fix error --- img/EG.png | Bin 132759 -> 129506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/EG.png b/img/EG.png index 64efe82818065100378044aa31b37aeacfcf3479..0dcd16c8a11b037119a413d11c72311e4d8fffa0 100644 GIT binary patch literal 129506 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 literal 132759 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
    8q-8F6!!sDoXwZ!L#Dl7ApHS>>;5_X-|pv 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%0A6xjp5t_t& zfub-}QC|}?7sLyu2X9u4KXC9M+>&YztO{oNEzo?$=LZWIy@&e!$`ob=pSi~*rk=4& ziGIOG!dO>*P7<9~!ncJa+Rr4&Y^LuAa~6hhx(X-VhwKATh^6A~h93H?jRr$j=H~m9 zsyR3~JiWacgp&`AVTtm~If?f|O99gWxLnf)f=yrpZ)5VfiV>U{9!|qqU958*mH>YX z*M1gSJ7UVten^GYk*OL?mm!{U5OIt$lwjqPdFf|9jG>{(&stv@g>Tw``ud!@Yxgs$ zwPH~X$YHg9!2TiTFm12c!MR5?p*83a&K|R3CFM>dfr{T?8)N+#X>@L}_T5u%goSO+ zHR!%lZA$UBk0uiC6;V?ocP8klpB>eFykYjp?4IU)V*~1SeUGkw+PIy*EQX%BKL4435nFpb92Rk`309ri zb@iSO)o@|QSOtntHSMAmW_|5Y8P)}|@e2qNvDXe}C0`D@=rB!#BML(nFo6Vf1=Vvq z#!{N?vXiO%RxnNln^(W&tp_i`EyDfe0jY73zmx(*spre)RCYp%cw_oq*wG*mr4-*& z4@*aPTAn-iuzO-HGH`*;qpHgp4thRXm?VySDF-~H`8D7ms*M8roQBSq#uZPF4| z8@JcX3`X^GR7DFD+ExnS*oGV@w~zB8n5{?_$*pY@UUH1YsREJd zp>sfm_umzM*Lg(AJ0+5b_rV!}eK02foWj^fUj(it!q2fYpFX>-(EddYYE}bQTB>C^8~IYvuzlMNO)0rR5cDo zADe(=T&2L<%Zpz z(UbiCLOb>W6g#KWDK$^n9lx_%X&XkT4@OSU%LF+5WHe#ZCODTn8P@(!&Lx1Gg|^Dd zN;JZqYhYJmKf*G`7xXY!-ll+fxdy8Y$}h(M_>^WA78{j!q5lCZVxcYS;?>>269#98 zi{bZf9C+r;7_mRzQA8!?zXU5RJA3=mva&iMj8%=ZL4$yL6=o9{>`le$)f)j7LIYg; zmoVrc9=8M|$R|(WC^M7iBluj%VyvwQZ2xt=<}OW&1&1z-A4sdroQj6!pU#w+a~G%5qNrqYFe`jyZ+wlTXDE|(+tua z5OLwcym_HxXa?Fhy52L+-OnaK(Qyal1roy1qo44SX3+Emjr;+%veVHTMjasg;e!~2 z-5ETC2<77?r9FG*0iARj@fI6tGJ%Cf@3}#s8wMpYr&bW-9Dw^AyhC>R;4aWXwVZIb zS-1AU9~tV26gWyC!vdoi7o;>{E6fCk1Q`T!U(kdC;|0{MPMyk1P1R%m3sx?wAmBAc>_Wfc zz7IWQ6&PEn*W_+}UM^f;D!gSOY1{10s{Bzgz&q2nW6*H0Qn-1+tDwO@osfQV+ZA zUw8+$PdST?oN6|Ln8Xk zyRV@j^b3!9H(u5HYTvr*;F+6ZkY_rsU%U7xaP3Ey`cnFf{;6M9mlroFpO$SA?^|j^V9SIYin=&^BJjh7rFmCG{<1+R0VfK9@jt{@ctUNDov_6{M zu1HGLMX=H_-88%pv_6TBhDEqeMIo=kYbgeVig|ZOwXE~{F&}sT3gL{EvRv!9Y+O^n;DZo4u z^ZaMUG4w2HY1zzRvxpecl`2?LVWGqvFJCVyK<%hfT5rL1D|NYuxxeDq&=WmE4LW-M8C{n5f1QI>!T8I z+%?cu>6a|$ExqB5rI^C&UM1mmsK)_lmmeop6AhtvUtl5T4jWV&^~?) zbW!vOLsDeqI#03D{ov6>0Mk(B4@FQjjG+?rfk8h3ml@lPw`(%l9VKXWl~G;Vww`QD z(S8Q;zwpXb+SIYZ$Jn`={s2wKr-)EIGiue;Zsgf{cBc#ExcpE zb?v*WTMvCp+ZShL_d)90LO$C#-q?vgjuuiDwsQ$?*__BmIZ761%{6X>1l*(Ct(7x# zv=2Ee)47tn$ntc1TWoV*`)&a3$J%bj)@r>Z$gy$Yw=|9z7|paZ=c-r}l!Cxl-o{09u3wxZ$FFg`kvA{4 z)jfg{%_4I-@y)z{vwH2pwR)ILgJ^^(y{yEbcV|m)D@$JzMP~{KdSDsU3olP?5(ri} zkK)4 zNQQM1C^g7)DurKuVUyW1AraFs3(U9i?~Mwd8R0bJn>IJ#CFDeF9bq$_re%{)u@A>H zr#C5_7(Xl=3NyZR=~ArpVNjKzMjE_oVC`*12&(HHEY|A(C6f=TV^Su=P5rQ-Za^^Z zx@;QEr?r`nw^(zOS+xwL^=)^(DCx2LJfO%dzm@w7av&^Do`n6zbO4)=iVQa+ z@)&MQ@oY4>`vF3AbgEGIHt9f?k-$I_!{J$74z(sR7z&1!&_q{B9vqFlMQn|nH_~Wl z?9XdE0&X`}o&HLc(N5w$X$#-HVc%6#Qv*_NSR#f+zy9zi&}U7h80dN{E`)C|XDBjV%Ca5U2qVBVyxmbuCB%*`4Teb#=q>=k{y#jN-DCnv6ZC zubanf=a7YIfqZGf1cRA{CG<;h-;{T`Wo}tB)(6ea8>5Tpte`&-3NsWtqBF`>*3Add zI%g1F6bXhTPltz*3?i8Xei}4RLXXpIZa|yY3GN~U=}_!<+K<%yJ(<&@X!`Upq51j@ z=o=OEBQ;F|hCrq)hECJ|iEl@8i8%#ef{!lXnXiMDyFOg9xX<%~;E>3kOXe8G&J#f7{kYFyWlR z{tpxhxvei=AolaBmnEX4JuhCwTp2#KRmH`u%0?I&Jn;v7jOpE&r$dQ3*n0Jz6*nz;DN;xZoFq*^+`Dz8wPgUG1Fm~M-yrw ztjR|IVeFm?%}ky9k6HVtr|AY2?G!`|rl?hmyWW?cli=1N32{@l-I*IrdK)gv<~c-b z@tho9t{qgUh0AQc@3!E}YgUECL9g-}g#5B@7uhtyP3L@l7eQBtv*CD;R4=(^EzS%|NgG?b;8AE?xqHd)+Q6?O}d{6J%&&jj4;gs7r?w4|!7c|*v zsU-CJ(g}s}G7ozNiiEo;;Il}kkJd4`qj`SMb_op|W+9`zju8)NXUzgkU#|Cx;yx5kNa=+IDNtAxOIZ@e*YC3DK8YNcdGu2=F<$aapS? z(7yb39t$ed(_ix6Wd~JOR5K7BoUsk5ZKHk|4_>))rRZSs-Mcig;kgc1qQ0GnM#C_h zg(MVV0}eGshPzS*Zdg1d1PLqZQ05AS#q;ZW^WID{ns1zd3}YtSFZFQqls@^Prl^*6 zU#Z#q){H*?2kqIPKXdD2^oujn*f;M*n7p8Z90L~!jmV4DXcD{4-Ld!A-r435Ee z0J>j5?=)6b(Al4&F*^4zqmhvpGXrmWQn+ zx-a4D*ENYZ#a0Qmup-1*&fVf8{DXtOY+UIA!Kln;w(eauo&*MqJ4=$`f?HC&CkFoG z+qSWC#IW{qi;!G2mxM7^#RjsHCqHPR_utA)@jD=V)2zQ5M!G=bLTdUkuPVw{yy@%X z<74*lQ%K}Pq&U8NXU|Q$@xuSK&Y6lAysVeEzI_6x8c1cWLq*ruPoK#<@*}L;y=g?N zBO$R`=KdY3PhTQmuDlL6jCk{=mQPfel6|+5(*8;4n2FR)<10` z&c*mQBS>7>`7w4Rm~^!6mtYY}SX<1xmYNE31DFm3o3G>>4Iw3#E7vFl5MF0hp?y2hI5P}A;72Z+V(ioGoU zzAP&WFjkYO7sr*L@1IvmIqNqTcK+1VOjAoxnQi(XCkL<-FYq2eawN1vNh9$qP6`8l zRx1QS2QhJfpbS-1NHbLI2x}awNj1WIpI@d4cnCYHF#8KI)296lT5EXIwqPV7-pT56cwY&?sP>94VP%;MA;;kbWd2Ddn;u$c-vOjtRx>ayawm98QY+n;J(b14ZSOhuuPmV8(cXuA zk>qA;M+uG)4mMFBoQ>VqvBYeMn6M=oq-12c6q|v9wf^Jgqho<0+WYdDKiFQG*KUcN zjuje+4D=gLnm;W#sZ*~b%6f~ca$>l8&L1U`qvI%|Yi!y;sfAIM=)u5_C1 zpE01E+QG-H4?{nda|JR*Kd#t!p#pGXm|_bxbeCN6$}EpEj~Cd`#OWOJ$$21|9Pp@d z=x}6LiMXmvg}($x?ZG(}btR?EYTc4=U#C{EvL8IcZwmXR!S*~|J!8|3UV}j#s~islY?H}nL|{t|Gqz4^pCKL zzp&6S)`_~Mw2j6*&l>fO9~vw~M0fwhHa^7@(<+DJPfm+(RggJ8|0TBlMmEZmzg>Tp z)c=Q!G_MLWlFEg;)~?A0-iFb+S8$lcA$}yT=_z<#>58dXodBU_*6QzPHwjH2#?)Pq z+=&dDA3r2`HbxU_^EE{CMePPP6fWAbb1BerATe}vi-R1sHB-12vIT`c_ViQ$!Q9ul zh5t4OsJQ%2%pU~JBvS_l1{NBZWvE6i@;WYhd*h_qsq*zxPuRaUclrP6oMO`&tnK3E z>4|7aHU=F{l2H?X(E8Kv2?QMl*DAVdD1x9Il}81Fvyi-+S^)A2B5ZO^#vlZYC&P9M z+co6Wa^ISdBWx0!2hYPM6!7D~yirwgVv|5#OCg7bY6NZ}qHuP=*daOId-62Fwk&%)^7Dp#X{{Y>B0z#|qvvfzI#~6c z7-*h0$6?1ka%EoW#J?-~omyU6)LySYbbbEN`tKxl_V${i^yx3ELkIwB#eJEz0-@Ri2Ba|q5G60G zuySqb7q~34gZh|>?AUSc^$7&QFnoEACgJbl#J!wC!(K1J?9;kmQZk1t0nQ&xi_p1U z1zQYiIi-yA;1}LvEVYn&aauIu_uXKP>M_q=h!=!Bp}G6V;-mf3?ffjYsG`8m;l2}( zSv#L2qopJ_BV;fLwsT5(WGu?&&U+oycD86RK)Dt7#|`W%7>vi1)@92pu1bO;83wkO{{0rmBxlRPO0)R%~u1Jfhlz!P{e zq$l~lUh*vryJ;wc@wCp@!ephdKZFBMe|-3>V8n_giRdG4z2rzS$ih~dth)_ z-#N%}6Rxm;g8ckm>fH$@-f^$oA0A~s$jat@^2j?|%s9TUpiCS1yoiKvn~^hPifg^SZjX%WLOwk3t#Zp77`T^3GLZUR}^WSAeooQ$HW){N6AN)<+G?9Ou65w zxNgvyNli(C5|i?Fs^(>`O`F)YKtuEwfBk>_ewcxK%YYKrxKO?#|91Lql-ZAGk!pSO*VUumr)t0ow*{E(ln$tn}Zz zdpCk&+-|-)Ai;43_6IXQDy0^$V4#~g1e6Y)k=sR3VzSyGOhLbgRWQ7qb1xM9K6pLC z_=-CshoX|5;v(P|1Oa4a3Ft(iJ%kV!J>ko5nYV5o$WrBwfEgto3I39Do6+~RK2Q=C z4xycBu{UNHA<2qssPB?(9D|2E((SsOF~%S!D4=-23J(U*aI?4p5;_ORuuL(h|Meh!)!!xa|&GkbsOp-K#T4nIdmXjrrmP0t9s`~BV?8XQi46l%< z1D7YxjSUb|D^C3eLs}@`h9CvfD9G z5g_G7lt@*;E4ZR>&OCEt*+4)6pFE;I#5X5{Y`HWHoGLmxAO9&K@!m=P*h5asCfp8B zM^G7AbajPK$$H+H6Wp~&^I)uCQ+og7rRV{g+qX8tZV>82QPJT&Rg3Sw$(@eCNM{|) z@|O>{#W~!K*{8qdCs|9Zz$+p6ejl16Op$QzLh!AFk4{Ht1w6KNuk=aFASvmtaAzJJ z5@;Gge8R}ZW|o+%ov{Z?Ki`g#k#YFxhE{+?hevrGd2xVLp9A#teRLE?jiA)SusBEm zI?JodYEsizFya{ZoI(255$e!=D)pNz2t63#SawI*#yTG^khX>C9N0_6^Ng&{D+ z!dVuiio+jQEnP4S_zi+QT5k)Ag`pzFeun8n@I!7f$zDGvp9o87$3Cs|9@7o=^i35OD2n{msvbT(CsrqW0^K=^WJEp_ zv0;sk;z~+O7<9l$q++M+gG(XezQ9;``1lGQJP;0pvMk@!0`?|^R!*pz>n4DdzP>(f zs%rK}rrY6A@H{mbXv=&5){;^|%Nrdb2Qb-2#2ut+_oYdhUSnoR4MjgJr~mlqv13}t zn6CUQ72%};k`og%Gd~Xx#TjXijqoz+k~Yy0WqWst@(S)9u)<$C2-VRl?~)U$KVPPN z!ib)pKDaqM2=?0X@nT`npTNMmDAYtz`xVv_q=~JE9xIVCvG5cc^Z`XGc8mN)6D8j{>}Wd`z0GR>h6K5FcGz>*37jh4|Z_ z>@b{i{&N8i`9BBm^054n+*5mXzl=Z(83U`VT;LXTbijaMZ`<8X2!86=+;J{;#57JI z!jI7%HxLZVxMJ*K+1Ogs!9fN#JP4RuzPK2a#lLr;w17t@te3dC;nIh@qox$WjkV^J zI%3HfV``_qIFlZ707bCVb{067!+2ByhXT|9*pUq6SvPIcXPKFwkIW871qp>IM%T}u zD?$f63!mdX(!O9Uw>$M$@G{fAlh-mk_Y%JHofBR%q5fGpS`R-VBmGIq(Q3h>I`R7q zfs>&(xiu5ZNk2@3UPxg-XG*@<8E-hfTkCRsXosEb!KM9Q2HXhY=XUTF1Ox<IAybpchJcr4o%Di`Po)4R{CVSjrY?6YUFlRiZGE@X1dpcmQYu9Lee@V2O%Ld`DcHfU^ z4}u{G33v_5NBftaV{74zLd|t1zMv6b{3X z8iTyj(ozTr0A)S4T*OGUy|V|bFi5A`&d+{BQ3USY4pA69e;9Z0DE9}%ly8byT&Q4+ z*9W0x=-MVi5<p0U|1)9tH& zBXKV`G&a`NXP}UGty+Z~dOP+J*OIjDVJ22Is9+9U+74Mx)iMfEEPcL z2Ify*IG%BX{>67X-oTD~29G}OwX9Ph1lr~K2x#uV=~IOhOVF=AMSd4&lBo~KOqapj zGEIZ3fy$IaYHDKQuF^IsskomiiSF$A@(-%h%c@p$#KgiNy)`*)y<8nk1yZ&#wjzf8 zs%mPPKUKU!f8TelI{x%&x{H)cqBbta2^y_a8t?_^95Z1L7Mg2ZI5?s@;&Ykm6tSw<6V8b2iD`%A%Yh;;I3h5>A$kzKD+vB7C9qm zBGp8Q18M1loS@)_TKfKjN)?|G^R(3MTE)Z(KQb@O>C?K|x!~Nf?DZA3ri2i+$&z-? z^6^EtjZed4$&8-=%LM?X37>JS9y2HvOmD!6*mvnHFAU{sdhfFG)lbN~T`y{M#KR#V zU~}B}PsdN))UA|a}KlvkNO?t9d<|zQdF@_G5l8#b9>)BR|;`sSQvG*&frQrhMlMd z&+N?$dFwH%*TdbvFZBGIZ}LAZFI@V}riGIpuJFl;iG&qT?bpLcN-umk>p4{1$RGL* zCbn=-%gfE3UR(hKGp$qo@akBcg6^N!>q21*3#)b}RAg$+&TKI~vYoWasZ)Wd=B76$ zPrXva?0B{!9CKTZW9=|yX-l{nG1r0ybW_O7uT0pT!^lN$mw18N!{+LPJtzbkIfaEg z3m`!4;cb29=HwKm8q8;%bsehExVWuhcohPGX0~n(Cu@EAxV3}NC4Q^4{)f1u*f>g> z5-MCagb0#^jOH$DPMb?|A&9lC8wt|LK?Q&+$%Vv)h5r)VsCRcYewe_S1w;b~p}_8|+W`ABUPZTl zP&3?a;uiQQz;ewSy9_=%_)a7@dk)q|W6X#qz*yWg>tR)>ZaNF=mt)yFsbnt;!n>v4y!cAK4@9eO}W3%IoIb~&(X;Q&xE z{CLXLR35&iC0VPFa&k1KuZOB40%GsQpD9r9NpN7NH83y;NnKFa4a=TIGArr ztVx0#E-Ncb5=xwnc4@|p9Pa!+KR@Qj#xmZBV3~OdY}tSQn>XP-gL4!+?wMGHQGX<4 z5Zf7SoS!{=2I~^V`E79uA%abhrpan%A|wx2pQW)p1WDu$yG_bGZyAYctcHP<*F4*KxGlUP<*EoBJTyb&v|MF#z zvU2y1zk;NY=XASwVRH%bn{It$zll5Y()Zw;-afc>{5F05S4dP8)*!cyWUfWY^ zCN5KctS5!E(7(SNh2QpJZBY)!zwwXCkL)b`_+E;of4$w#kN{h>c=%^nlWz6DUpW-} z?^lQi=usA9t4vT?I${>Zt?5uJlCYBUm}bJ|1evUA)PvtD~rUb68^Lq}4u4k3-%&g@%tu?>x5N&9n1FgdjN$vH6}ISV7Dt$xo}C2X4P`!imcxz<;;wki-1V#I_uVopW8$F+f8U9$a1q3ht5E#=t@Q8f zmxddQW>{F%f3vWx-yqN45m5i#p&w{y%z`)9!oTp7371Qanud6eNB`c*|Id%)|KpQx zag5a)%H7I~NSVmEj+=0!I$LU#|8C#A{{G6#T2V%Mw@gCkXyNp_uk=i8TkdsEuudLG zmArg@;9B0s$EPC&qxN*2avKK7)%%Pxjb&x%w)m9;8!KEIEJfAT*WqahQF*F!&+{4V zQ{!yRKw9IYqqj-i@K=HNB3Kph9K&QBgeQy?PaZ=h3uYI##KuOt{lFOD53F~`-5iz~ z_6`nD4#2<^5-OF$m#sktbRL;-Q*`p4qeYMM@ne0tJV-4dUqW9=wk@>~fAIum2DAW> zW#<@!^TYhJ#D*KV09w2cY$aXjxLc*&_hBM#DLua;i70_C=krcZ2>J*kKX-xWJf3=) z3Lb{1{3dpLopKYAvZ_E<9b&LLJVI;w*Ur1s5?8R7c<10?{eH&TykTTv@e@XZ&P4}@duEcEPaVKDaB%nz%m~I(@PPnwg|Q2&^-pL2z_~If ztb;Jp@q;ZCHgBaZ)!X3b>)CCt{*DTKaePb|e*puwQK1KBq6&Qv@DY6B{6|@u`NKvK zcorGac!dO_+S;ZID5T)n1!j6CrjZmymSsRRe#3wb07!IRH5E>RYfD*asg%W2C*-7x zii!#g55giUgk!e_+4HfHgd&`02js+!B!pyulL&2-MWFUVM6ppL~$3f zsAptxViB8w_)6K3tNNeC;Zv-D!BnCp%G5hLN40pE;Nb zE)Y0JTA6jTpFR70_q17F2VlPk?iZC#Vven;iP(U1XU@RO=i`_s*gDeJnXW%~B-ua`~u=lye^^ZfBV{y495&K>2te%JT=`MhTf zf(4#6{MNlA%X9Q7;hj-0C^&tXXz{YO%}_};Wq6sMekMf+X|rl?+Oe0S^q>?Agzn!* z|D8)iyS!Gqe{PQ~h(g}n7kMNp5nrk_fE}^B0|$Y14^@mdr`{eI#?MQ1*omUNA#5QN z@0d#Yi0JZj3nWKPlsVhsqSe2nck%0mC03A5}espns&htRVkI zI{ek}yI$wvD6hpwbyw7OlG^Pi^7)o$Q(FNw-F@}$0w2P@V;IQQa6KaH&FPk-qp*~j z0{Bov{25>%jaP*6Ha9giHy`8Yzu853%D*MjB*yJxezPNn-!_9zdpe_07Tz}ThtR2g zA9s1|N7`Lcy+bFkC$ru9_q3Z$0D$Az+9D_PYuvLp+(E{V@=)l_6;**=vcu7T^3Dg{}-u|&cVq+%+`CYhI@Nqa$UT-;-F_H6&mcQ_3I6ib9_iR{io zN(ID`OQK*Z5u@+7+n#YS2QQ^tJug51Iaq=MwwNBkd(i5}toYx>=7i7sV;b4TguJ{H zc)al`1lWZJ+enw|(D;L*)jI$=5_gzdxT3Eq!?JKGFl_;WrmOeRHehKfRsOQMzTW4e zQIkKGa|8|`&LL;#rmqEn9nJ`NOnsEMv!jBJwzK}<7CJ=)pzR_jt!a=vmG^}81Kq;h z9AYoI;)cJFTwXqptrZ_RlT2)7#z@kniq%PjMG@7TK;fOA0fHYn3rIPK}N2 zvVmA(PxDc}w@S5pH&T!|WMmHRfUq1DzskyF)q+UmR@wJVWJ&fC1?5FSCFI!EnxVDI zRM0mB4#ZA0%A!opa>ei0zyOL<(4moAF+8h~d7Mi3?AdH+%V|exd0Kw{)Z!AZn)=!q z@Zp2X@KN=fT+*&BH^ODV2e4!qJwHwbJ`oc-AYRiN2;ZT+zt%8iKZA5#Iz@oTAO%h^ zH3HTq&=qoW$Z!!4Y7`r=d~@>@HzCJ3RP_?NvB5sbatpAuB6!n{GyRWq5t=+O{0%dF zfd(anby=a^`h-+bn~kV$b}d?qfK%d~u@{*}0`JCw=&I z(%-|kDi#a0WD>rjZRD~eEAonA5g?C?m&~a zy^Anqkd4>UD$LJ+P75I75G`ebZ#s3l{?R)PK=@&19~t`l*O~!x0gZFA5vUyHe0cP( z<7TyunZc{g_`$ANG;?F5MaJ1wF?xS8ko1EJ%=!6j^U8i*7ja=rH_Id9hN-O%0 zwj)%vnS9O`MR7o;5mcu4t7;J_H=QC9-m_ugfd6Li4lt9-L&y^r5f^t;+r9U{neK|F zps=vx%wQevVBpBGvqXxa$pP71TS-YFKw>2D+7#Ok+!>`NKfAgREUtEstW)?E{z15) z4f5)j^5(%1o??gT6yH@*As_C87XYP)oqo42&)MgDh3-0iizWEuw=V*uhTbq)MC2lu z4zxnGAf(&ISQM`u5@8py@_qOk;wxBxt)W1pWLHjZ`6B423bY?ds7+eiK+()?saR^M zmBD#zLppc6G-rpe0-AhruTG8igYA|^z=ALmHmpS8s6S?0gmaW|7#GDLRW}O^|6@yAvcET0VEsRL9Sjs@{uTa3k&;Qc4^1WIn5eauqfH_%Cd-# zQ0@A_&&`cT9V;s&OS84dFlPDhynv$f`-%wCzC=b&zDE)76|9C5H!r}bIg(Y)qyWqem;31)!!X=5}~~8 zM#wipf06!vySIvUWAP*59m75L;)wp6d2l|vQonvTo#(#6W1CR0+B9^ zHt7KB2C4%9j&b%#d9AM^Fw~-$ z$k&1;-w-%?u;T{!&?1ZM!P&+bJop`<=Vl>mJ@ZI$efo5HfER?1OKX{O!@BI`m{}}Rl%^gNY-?yI2r9DeBOO1dP zGqa@GZ3Bm|ny22otQ9+mMmE@!kRUBWy#cfzpYG7pFwmX!SL6*VqA3|tb^zcZe_D+F zu$WjuVIcrA-n}~p{w`x9zU|n;uH1PignSM9LDVd_3NgapeR>Y)^8DOfg;I~6Q!p_U z)inG#M-yLbb_+Mmwfz_&(P$BG9n36tMO&NpN@@|zp>X>loABC+g&>XZGcp$XMJ%kW zG&=#2T+_X9A)T0$`%|hEva<;uETzK?rUn4i$?9m0V4yLMDtju;}5fJ2%xo}$B6p^+q%)2WqR8u zf)=k}22A?ZbF!3zr_Y?}$-91DRdqY1Y`!S`KK^g1p}9b!sUKo{5fAq1*p`3yuwUF4 zp@h=BR$yCp<>iETj+lx}4nd1SA4-1D+ZG>4xG84S3wj;DB_n?UuoO^gz?`vSyJj?z zDpC~SlORad+TGnyb`-~$@2EZfuLL@Z9#ZzIr~1iRlLAZu)YpsU?e7ogjFJ%3mGpZE zlf8re$KT#p#6kG)b}#gRa7~MgGd!t!H|oS(8e&~v7~?4tYR({=Vr)NV1SFS1g~s(_ z{6Ff0D8@oMuvX0#;libNT%F@J5S!0x(3a8d|w>0`dT9g9jHN z%Cf~R7pTN>+KoYnw{2TrpYLcD%*pu$1yT*+0KbqeqaK>AB-h2Sq|e8zg?ehxjW2jg zIfG=-_1K#ZTUwmt&4Cs zvled_6HL6+}5mfk5Qy8TT{)kk>jH4bOV zgYJ6h#qO2$BvKCtOG$14g%{loX9%D*C?QY<)|rN;!t=4OpCB-KP40r9Q%)r zh&D;?&N47TL@mEF2mIjzDv8=7(y}%*M~Xd?LY?DI4qNDT1&DJC+{r*YHWrzf zAGgN7Jb3%|Eyjm@yL}uDX?e`|Fzem{*A21zgP(WLO~jnvllV%H_g@~`z$9gUqlz4p zdv<(K4`1gN4JJB`--~?q`-db5AV?m0#wXe;mq5Ljmqyoo{OEuGer*or&Ykyy3F@Yk z;1vK51E4Ki`)63Buzlyw2811qW8eZGw0sr@&>KOmLl`Dc%lUZXS^dMV9rO=MUl)L{ zuZ%!fu(CEw>=fTtH2TgHtT~7jt6;*dT=3J=9e?DXckU?{35E|mgL5N$4B};|n@HX8 z|F#}CKFJ%_J7VorR*7*IUnO@|Ha1o}yw=VGBf#TRa-#a{5vTfyl~62F5TKMyRqX`1 zvyji9Q%&lozKILoYQn6$@Kya-C5mv6CGB@(YKu}QiMZN!cD!HRcpwpT*%e3BpHzN8 z<J@xSiB6h3 zV0d7=CyV&1B_X3pmbzbye5&$Aa`LaK{%U**t@CdCHQ2LJI*M)5_oQlf?yP~eXBUq+ zNLGmZ12gCmPEM$%#=hq@%#stDM2u$$8}jzLKa|WS7t<_)*Qex}JT{eQ%x{|JafZ>b zNLv+j!+j?&=W|i&ZiC)Skd&hAgGe&jvVu5fnF3Re7>X~yoiivXqO8+jy|QxAO=qVR ze$*Fr5c_syF%#?14_SV8U!r^m7z|Ddv@|iYvKAPm`_r&O*$XoTsthsL+1pk&P5{YQ zqZDEag6KtO%=+mNRWPm*Bno%sc1+MEd?xop?i2w9^#%np%YX>DIB)2>H z*3>8if`abgc|tfpq8ITEgvFUVl^;fa2o&xsZebJz`B^EkGk+IddpW{06&0&cgtwg? zbuj>gi1G(K_85z9PW4r~{=DOgk~WNCUz(uk#n0T%4wMl}3($WySFQ|V%CP!&K{Hq& zF$l&q28wXf_n6HP-Js2Fa{EsT){=!AOH6&r*w} zzFh4n#LqX$wv5|-@ZcJp9X=s2$5`XnN3&l+P*E!2%!!&hu{$1KeWRfpk_&j3d_#EB zw+T8;oOykMOu=IJCglE^0=yNd{36^x(T)EwaN`?o^9@`gABYGDXmW&p*55xHfPF3b zR504s;bWH&c4DR1GY{tutH(%Mc$tOoy7V=49fiilO)PPgI-y5QjkQi%;?jM^Z2a8f zY|i^SY0l-2Go+gsehF1sdelC`42sLh6I!2*#o&#_X7JDo3JN(VvIM##8`w)suGqdb zn4O;wtGhCGp9Ql&>W^RcATS1b(-WiEHW5xy#B^VS)BG5T0uLYGmCPW^>6C>tDhmU|anp#+hznAvyg$}$h5i#xTvTKrFVNUGC~2ZPGo9SfZ-f7e!nA& zlNlgzb$~O*oFp$-AdSAX%Wi!VF{i@uZ^dBx&&>UH={gK^3munx&k=maz|}834}MI_ z=jY*(w}pw@Nsab;o`K?N+#S}|e~D@)9|TDGJ$0vy8JsdyTpEE*bABa`TMiqv?i|K=L)C&&&# zAL2x+s8hQs+L?pC9+zJzs!eWrYh0{7)Of$IZN4nI&a#)4)0KWAkP+IdT(|g zaS>jW{dfL7BN+9q4 zcM484K6)alWAi`uOq%QdRk$d=zj@8vmiHrd5Q>5bJ8U#F+vNZYVI(}xY-&5aT=A`(9g8BdA#0&eui{tj82GS|j_3a1N zb0ckS?4%gjtk}M|07W?7Y$3P{vSU1uRL0nJRt}};Y|j{NYC_q04*p@AlF_83qy)vA zH|L=idesFDA!1UTc`40eHBXfVGr~c-CxA@E0l{KqRH%RfxPAM*`c60$ADsSAco|GP z)^!asqAx8PS#&upqfAwCz9YC-jup zj_cHiK2hBo42|y{7bshqC|8`5u?f_8Bb+p*nnBt$&3o|rg4OR88Nin5*`=V)Qiv^)8=cWosKR#c%2PTJPr)3 zVDOPe#RA~^m>OGySBS|+o3AK@buJ54qFm8r8ac@~*+PEdF##GDRp+$xa1z|MiPMd~ z`&t9-H(6YTl-H`9psHDW)|O^>}+Q0YdB` zj@J)(mD@xZ97uhW&~?X%ETn6uVs`097{|U_u!qvsnznx42Z23zFK(FjZ{IW}<@h)` z{jAIW1e6m<9t92~#h7em4%6Z{5_g}a79)2JryED;C$sD+H)*ZsdOuJr2JH6^$*21I zq`J79l08t%pz@VV<^({=e%7Zh{v?}3ldRnBk;HOyvTefVo^xN6T$3+iQw81z8xs;B zo9uPIm-|R-4>R=~cdVvZnw=D+Mx{n2;HBl9@31?kFC>c^ zw^bJYyz??4+kBjcclQRD-q`B%eh8!+Mh_1lWDs=p-!Oa`*lvvsgY0(eBfdEKD<1yb zl+cTaigI#s?T4t&oTL{KCK1*{+jSi)9ap1hr;DHlB zp%AFuAG^5IEnwv^J$4zC96axCF-zNI3zEBcYOYo5_~hq8vW!owD(j;^2<^n=ewye# z&>Z2Ez*gjM>RnWPxyRU_Hx7RR97H(V^z~I{A29}jo)m-8G>Sak=UI%4D^<0XNED!Z zP>%rvJ2rLyF>Xdt!WTJ0(R}V?lXZa)_m*#n+-g5f%)a2tl)o`#LHg$5O6EIR$?l1-?dvGWME*EYkP^n`5m!JY;4Nj#;AxvVP*L7PEd6K0&l`N^?2&0 zI5Uu+kH4~6_lQ?mY5WbdJfLrADAi)4sCZgWZ?9$!DRId=2IG_X!~JDy09+#grchfJ z8yyWG4-q`Y#SB3z`4^niQsf64&HintEV$_+qd18n4K?ynA7%rP@&H^66!P0wVsIdz zm^St?jlf#od&Xdo%giq7rrzI?BwM=T-ZDKP;I}~*?gv7Y{)%?0BilCXQ{HQ9pC(e3UXS7fJxAH{LYmRNG~6H;v=#_!W7 zHv)uf;JuR3f2(cFOagv1zR3}honU!4zlrE1yvC{?-cLkdEc@*qtlWIKO~?`6NRvDB?JHLqfp|}l%gy9(AtW8bQmf;3y6$DxH*PfIFU25< zTsCdmL!U^g2`S4ou`W!=gjfc7lsozsG{Uy9@*n@o!q*fdFy0@$;NITL zrX%(w2eQar(uG~v3UQaOLyM1)kpwoCAvP45J^!i88#ZwrDHTQhp{F~Go1lfq1NNv^ z@r^`>zo!IP9Mu~xw)Le#PW1nYS!P+I+};E5KYX~Rd&rIPLS^SsW5n32?r+F4NC(O5 z5*~^FrS-zmnq3e{(|1U2fu!KZ4gR;^c4Olgq~dalL2;A-kuZ`C-%)fUSanWcK`Kx@ zMj545CN%Zj5%t`>{xWlw0g0#Yy*+{y$P- zQl(+xkcq@~L^0vq$Kt>Qg}wfpv$QxG5YV6L45yT*XW5D*EGST{LQ6)!f+rpwiV?Ns z`*xf(HtyjQrL_5;dkwCcEdDSx6hc4%ovNv!5vZ18fK(C8qt8$Qi_a#8ydoRa7@#-; zU*Lh=Xp!KJs5xvt##xuQ6u-pGKtsdji`!w?1xppw{Z!ouen@S_{g=~46@=XRS9-58 zvvodr_^@b_Oz1ybLIP$&DXD1V82}pupU_){DkfqFci4e?u(ez|1ZW8ux*;795Wui$ z!@^y3O&#OZNw6F@K7JQ7Vb6PqU+7;cUvAGVxn9T24x-i2xZ$^>w|rmOWBAM&q0T(FP*3B<2UzCW6!5AeXqAllaYb!7(K>uj+@1Cv&hQL^P zVCnA{kn=k-@~YO%w7?0&8_?3U{Lg6{U}@kIqE*D=jmFrWp1|=3Uv>q^MlDHbhGEkX zTeAhu4Wb@&MvO{B94qcN&xOws&j6ZaMip&@({hA2z_8(S)PYSmsjyH29JI;5Pl8l8 z*K{BjiMb9KA>_s8wIjcJPn#RrTX+oXnwl(58A0w!yU=!2L*_jy8**|W(7;T5P{Q%B zq@;mBI6QO@m6MM77k14Do9 z`gJtOfLX`o2mB}DIfEbmUxv9>p&FdY{5VFSuuwb=U3oV$ch!nwpFaK7`wQUuu}fto zm_&FxIIFDlM8(AJ-2$dE_ZA*%oQep3Qy4@c5SB!UK;TN~LcN0nVr)W$=?oGbtkf8Maa&+4Ie+dPgztDcffj>wUjI+Q1J{5u<^W%j ztVSfxG?}x|(fwlfZu~V3M*xN{B2E#Xw9rc55RfO}N02oJ^U@b3@N0Q!hr&!y<$}mv zvK{xju~)#0LfkzVw3wUscHXBP0)m_`guM+Nk+geu?`GcNHlRm&IzOsg}Dm^Fp0DqJ3O;6AOk=8ALv`p9pYxFH^tAc z{J*&R+cUfNS?!E*6sM>5_1w0#63yh*qHdUgI6^6FrY-neIn#*s?GKIKntM^?*>he9uZO0<%j2Ix= zBpPH%AP9HhYZhJy7PX2v7^sk!CC)m!{!pVXF!BfKvlc1yeZNz;v#)G4YnFfX_$lG; zsUKC!id24>-_S9wd_`aX8`j1LT=yzzSy?j?^k{Gc^D+!}7{c>!L@RS_NyG=5IImRb zgC9SBt;f6BJooJBQ(d^Nw6&4DmXw^Va0Sd1mM4Cj&aA}j>=t+eQ(L_$&K}-#mWI3Y z&$OMgkn5p9^4N7eM3(jyT0g#jM}n%3t}b#)*f~(U`xef`jGb*I zxUt|V>G!U@_yCxqb$W}{i>5y8vt?zn+8_G3{90U`yodORl^~J^w)galIeru9z@-x% zbX)=gWV!-CI8P;+;0=SBC92Mr`ob_sK+sTRAwL<0Rwvo3v&S}OjwR^hbBE@ax+`17 zhEYX8sZUI6ZK%t&>hKLgF$oS$n7J0W0moT}wmsop&MwZU*FZP)rL6&T?;y&&iGl(4 zLB!FmEKE`abZs&zc_23xKlNAplWyHw!Ap(rv9hA1-qMRGFW{#oFo9prKTvHWdVrar zAYj~rK;HiGe2i*i#J=?(i!G_)hN6}!8#WRGYNsgK@$}t32fZNfNd;*_C#9ot=1h7< zhTjfg{31IQ939_5ne{95e!>-mAJIRm>;dC}63$Qfb=_wN3b;=A@wK5r0>y(h zXujdQO+MU^EWxLK1w#NiCOtDTJv-|pfHcO~xh@hCx$M)2x3Y@fL_IAX9w1K!+8y^X zw5q2`}!`vXC6l>>*(}V?`(ZrH%Zx1LE8W4@%Anq1D?6u{W3@u6z-p zye(JEoSbF>;G#c)g^6j$qYUh|mUtg{F#zeVcuhaLG}c`(34ot1wo6_Y$I4GcFb5T1 z{`G+fBUPv)m=BAxP%aJY4{xW&y*6CyTB_n#2f19+)>aNK^h!N8fKfPB=NE0Da{shj z-x~g}Giqv4I=W5#Xz=;Ee;K%+0No*NJUsF+0SIdf%-C}N@XFz15^Yn@^?OMrLi?p=uRiYEE0j~cE zFLO?8*bp{6{*I20Nn~oUv-iWoH#RW=c?6D5AOQv_-EA?*^DaOqYxm#;=ljbqq0!bdBe3 zr=oh{IiQLrMAY6{=dnmQ68e`}Qp?bqni@b(P_{u{+m9TU{-&p$eTI*Wq1}2K76u~{ zpp)(Fa8?IdO<-91^T+!ma-O!zUIxxXd9lPzX#QF2>FZ4H2lwr(WfTin=p zKtO1ysvDtuT zf}8tQNeOCrRtNT%!xYFXO{yI^5MavulFQ*owD*r)R(rRwD`$2TH?w{Cr^`e|BzvAo zJNDSQb#y+2T?on`09iH9LErq@bPuH@=)%vBrt6zF*%8bc4jA7Pt0>ajn693n{{ z|J6g7hwmPKOeA%Ujd;7EjnT%Y@%iGn$9MWi$j%h^G?~nk4s}Au zr{yC##1;XU0qwEl<0qIp?Y}1$gW_8xEFGpEaGP=e$g!juv@LcTrfy6hQoZiH@Fuei ztf!pAfHK%oe!FYeATtvJ|3s8(=LDZoS3khSB}%54Fm#aKX_F_dqO3Ygo;=w;mwV*a2u`z%u+KRUGqbAu> z|DdAQ=Lm^~fBB_yw3K8>`?3-dCgd19?WQ0AKx5L|vIfD=$TKhwIG?U>$VZ=|!}GN6 zhxih51|b`(?q^_O$-lrC8yk!9#5V*-KFFk=pvR9De{5X^<_XE$fdh1uWNi7sv0&IG zLMFm+R?oG2*P0>18(*gWqtH&)UlGQhrT^yRhYv^){59>i>5Y6;n}n*eV?Jq!)pmjW z$|RG^7cK9F$o#co^M%*DNaX|6=O8~Yw*jM0K-uZLqM|5M2IMASxO~MI-muxv4m>_l z8-I=B)hKrb-mtHI24aV_D8ai5l7@k-d}i;c`z4C)LH|_1)?}c1@HotfxaWWT#W|zn%)Hcp!i%bwj1_@7sxiuB=45kKzxkY z@gXD+q9$eR3HEHrg`jhWcA6in&8GR%X=8m2GT^nLXgidXW75EvRxkoZ{ewr?$G+k9 z`jZOnOe2`To&J+Q%jMwLl)MczKk*SZPt5xS50~^jaqGuE{A5lH7dSof#m5);o#t-k z*z-gwgZ^f(_2YU86kiG9M6RxNJM6hTQY#pbb=&q zi1KH;m9IlW=-!0*JyARBr>&N6i4GuU$SUbO>-V42`|ZV{5$I!*IG^Ak9JA~j zg0t?+oRiJvvV%4`$&rMlb@YKjI>g%JCFNq9P!L%pHM}6d)jIIue{c1J*}JShelJV# zuu&IIehLo|7==@Jg~D${vnMzkzqFm2o=&W4EA*KyY+a_SyXayR;t>`47yzO8oTd#>NNPUu0*WWuxUYDT!zvURhc) zMqEAGME>fXKYyvnIbc1^#nrX?>oXjvWLscW-1TM!x)Z#JKhkQ=E&}8*?k*#Y<%|szJpfmB4b28>JO>f#UGK- zDS|$wIVf2(Eem4jo0zE-!l z+b)ZjrMc}$Q|jbU2*910>iGZ6*dH`q$nVEEw@Ai9Dm(>`q5z?gBju{jh1~EsQ&xfq zKazpsKHX3jif+W&@HFEC)z^z}+TYow!k&phQ_Yo433x0oS&9zhzJ0%irQW$iD|O=* zhlAZFRVz~%3j5RaJtB$|Xu7miv+}D=soc|2vXldT2SV0Mu}Lg`14@FM3Vs>P0x|AA zmj$yn+(4F@%3M&Sw8>KEPRK`CkE^RI&?WHyxfGmp6p^`VyqB{<#%npPs_0<;P9S0d^F(=nU^I4 z8lcPpWovl&@Tw%Tqjc|V|5@!^N$K({X2Dnc>21@?cP#S1yoE!c%LzI(*ap^u4lpu0 z%-%mnOZmh70l;Vj_}X0={T$Zw%+Ow{To9y^td>&W)HKv~G0!>-Tu6hypJ`{Q_#=ya za!_Z8B=Key9zKtsnLef`m{s&nUE%Zd2&{uySs};A=J*h-i3|!;F(ILB#D-yC;^5e- z1~n^{okLd%Oh3$_rO5d3_TKVOHw52>I77cJ7(NlKfkiVncP|nLFJ6S!9->|M_B|B{ zVrgrFUTyVq<;4Y$?}I}_RU9*MeXDc0`}$Vc=|Nud!hd^YW-==@&~^}m@DJjP@qMGE&KZ3 zzfV+p#poPkXJ^O1jYe+O9=ZwVw=uIN^LD&27$T4O29yzo^5^Vp$UbR57Ql?-ZFd&M z5)bRqviJ}F{Xua)*adK?;mtZNf_wF89a3icM#Fz~BBB)>E>$(cLlgj6!@>p@9~~by z^H`QCSmlrRm;741^#5bfI%wQS-9vQfhD}7Xs@4P zgIUtSA-h3b27w9X7r(%>iP{X70|%0eL1AA1_O_qf&d(Gf1>4z?Oh81>^w^@#5sjHi znhuDmK_cR}Z_nf6G}l_0g8UvjKE5jpla677g{38&umC9zWbL#z5eR<-+3y8}meef> zOyPSTJfK`|YiVm!K2p31?Q+A5?FG7x}K^MMzCtd&QH>DIEZ!s|*p6x8Zxo#iFZ~<+@%F2qVD-tkK_&$Nt z3QdV(adwLW$?8|XPEj>?;hMtr6Vm{^6FCRc*ZQGGkp;BRJ_wSE?Xk=-8UPP6GA=6-c0hu3;sUNz zK@B87dzcc|C&D9Wt(LOK_cUB9kZPeY(;ywCE66{iss@4NphtOgSr*Q=seDV+iz6@c z%?v_E;3)BY6CM_ZwJ%ZoQ@|0n3{SRKS#ich3CQLaiTL82WLaRNsy`**qL?UDFCxD8mxs54UnRyhoRv5;nk1oF2l9es5!5KoEUf~U z!xadLISzE76M_t#N^pt;3#u>#E%&nZ&!FQitet38sO$sOEntvKNrhM%4_P^&_(j7C zI@Kvq)#6~ohu&6YkN#Gq!(Q1Bb(8%B?d``|fM)s>9`#VKEe(}CuvaoM`7|x_;(xUO zy&y(GBgJi1I0@y|TxHbyG|sp83SiAw5v=?jmXJt|Zyg<$IbDE3R}9a*X-5|88<V&bk}@__}yMvR303UCb!Zdo!wgc>RtmcxPD?#iqK ze{tqakiX_nEJ}`LYcj)_?^>n4M8X1(ugF}&!7MDSNVz4l7dd?43^CvE*#_nSOA!7i zzSzPice3=ab#`;IeJVlQ4@97VfGhK8FK0pAl;7HBmW_L}+eY+@54>{VoVoWR#I5$j z2gHMjQ`~-lOU2x_}p5B4gKI z?HAMg?rLyiJT`yCm7hC~4(ri*8`d2kE&gR9K4xrT=1BObEx zWezFqLiS+@JEC~P6a|1oVBFQy*}=tJ;q5lJg#KEbJXA){u!%w+3UU$;QEOs1stwnA zGBYwfk!KSt4p;!f25-o zA2o^jKbJtwP~91^v9X!6-~A7KR-!iO@;=qyg&Hu^<0xmpf^DlQ9@2v!CAV^LUZka| z;*$^a=_M?|s1(~nw#n=Ru?8-Hiv@4qq9Rf3qo!7G zXjfXBL8ZF@6Bdp*`I@_S7cx6wL6Z+*F$@NSk3+pm-G!z+w{Bs2J3bz`sFzaO6>}x{t2G=tp+mkHDkJ2-Qzj?_Nr;qHJg)d-EzkR5;9`XvEy)KRHj4{K(fgoUijrBP|M(g z5^G=3ADbZVGCLa%Ogo5i8+4Rd%@aRgVRWsv`sYtM7z9N{>0Q_d0Qn}Tr;nrNsu*32 z$V|9!f#LL(@YhV>QtE&wFRjmuaMMse?9;@a#-Dm4Ota~Nc=>Y6uL*AEu3?DO& z&=#w)(a}S`lw?~i<%D9LlG@k3#(TWIkYf^L2hTCWIqX;XijQjoMS&Fqr)@i58fX^e$b?Jh~&DG^qs zCtEJ$lyCU((jD z@OpMw4Ys6Lx6l2+$&PlK740C5uh zxj$pTL-ZmVM&OJ_XCI(^vs>&mNB-374q!=|I-jnS_Ug1)-xwXVZz$I5TVTPFw^o>m znRCFc27kl)A1(02_!`OSHOoFdA@bnAi0RP)Rg4pt5XfALT=C)AZ4wr=(}wpIydxO= zh|)Jz)x>~9AdwEAP`wkX!GLy|aToWBLn!4sv#uz2TRM*2t+ixl50qfI7U<1?LJ#JJ z#}TLzT89TQZsSb_eu1U3soILt^xtjS&fevtkC{%Wt^U0f$M-Dtvej0938x{DNyr$J z+6-I-uwA!z*Oe;Y?H+p$XLf+Ht^aj)Nvd3&UrAm4(PHx8<%i=|_n6=$3Apm|IOpfT z@(%nx{8Ps)?mhkaG>di8aMjZb=n9S&TnsP}{IC_f)2y1vAMcX({{00$sYD`0Q|GUU zl$7C{c5>;R<`CzP0jNzqg}(|j#iEi}Y(l`qeQy1X%*^3~Fel>TM_zVWnJ1jmcwfx} z3ylPVRGeDhw0MDLSaU662~azaeZ3xX0X!h@AUL5CR4MmxfK|Bfh;6mI;R zdcRS2tI>X8Amf+4xPH1pO1m|P$~8|fxRFdUF+gX&efx}=k)HlJOeRVSnBH8W{xEsn z4XERMAy=jet@?hq9-l!T&D5NvB*oRT?%$4AEiGrO5wu#HpaqWu1X_&dK(N3?&%GLS zsvMpTVwH>Y%KJpB+bcBPcQMBzV2e!rQrv@Sp%W*^r!sU>yjOoWAnsS4_s;K{x=%Gx zbPsRChH3m1cqz*ONT6AxV?p3!fxb2mlng!w ztJk}6d)*b23lzc}smD9+Qd}Y)A!$F=r%;sQP~0;owM+I8%LeHv0wAyPX|@{7IwS>V zqcn>m(t1jtowLjmv4%5eWAM2t36x1dYL$tsT|sw4eLaIY6yA7%@11ap^o4WOyG5e@0Ny=%X18+aojqAM2sLup>dh3u-~*?`HU)$ve2AMolX2kIH# zyng-n&5z@K387`$TV6#RX!`Vt)^OtQ-y}ixH|;v7QK9WJ*?Y!`=d{6f8=Dv*a}_zQ zgB~M>Ua|+5FP=jJSVVMm_qT8KgKpF8b-DG*C7g5G2nxRW)hru5&i^dawoIQqI|rfa z;nJCvHN2vkYP|mS$ALEH9}o<&3BwtxLx0&dA89>ah8PBFx zjQI3RI^$c?aVW+PZ}`2i@-dK6NeTzr38tWSYkmauQ@Hi)5%S%mBq=LzbU5;f%_p*@ z`j%hQ_}mcZ5w>y2h;?{xNz=$1T%9fb&73+|$Y_2cbtmtb~o|qhptZIkcIJyW-vV z2&tY&n&$j%Ou^&RZY)UnL47KX$KgF@1MZQ7&xw)<*SaTC7WK>zChy%@^R9nWnQM?P z{y5A|_npFeZ#~5oT7yHD2(2(Pi}<^C%}3??A7OEHCmlsI{e}v)p);6Z} z(4%z)(@_Thn)9sp&g)!F#{+Zb48%5wu9bC$992&b(dBfO@%sWA)eK%fAzczq2^0!b zJ9$D8P+faL>^lo=nAs^G;ZKJHSIh~02;5iPyoUtO8m{BYkMHrDT^4y6<+BdG8>)634&GkiNVpvWfT^cErTs9TXc z@|w{c*B5>fHqz6JbJX;Y?$hkXY=X}l`qjcUG(R#Vr^VJv1a<}U9A3ZrveWQ2d0Ixs z%gClUuk~9WE?8Qo8l(@ghT<^A#o~NPfz;xqMxUfsl=1b{7@2)Ty{pn1au_RwkLVaZ3bU?UGbooDVRg)o#ngi zi-I*i$NW6pw`w*v%;$;ndbJJ13UYq;YN68SU(;YBaZOK-pP@*pqe+hX(D#Ox%qBm6 zc))gr>EC=!U-<+vXpz{S!MFi>9-f?exLOc~3)vqMhs)%Ss#639fbJLWl(`==3$C7n zll*S?z3J$FCh=OjTr!MFwL1cMd;bhMYa<@7O#^$Utjg_DyM43+gykdUmt zLHa!&9zqTV|DL$h&}U3+P0?a_YezD@*53S_EN}mI+rJwqD|u%XAb-@5RT#3kY58;m zH92_0i=ii=+=+y8_k(~fmlGz+H`c*FL9L7MHqiVra7`lk9sT7<6-MZ-)p8bSRDeg* ztk_uLh*{p4gCIcN&r|pVN)luE=w5WW_TD7o_qy67<_)jcFJImT!hm(Gd5Q%p0D6Z z3Bw&BL{L!SPo5|?CvEwoV34ry_R6gt*>X@r{Ea~go#St9e=44+5ZaDKruZYc~&;QISeL z6aC?oDZqFhQPJm`jfRwNNq6@vywhmIKW?NDJMnq$y`JSi$6aPENXz82H$2NX@M02S zt$C=`Yd9c%XE}FJM?GraG54wKTS){(Xz55RVozXH2cHhXCq#%Ft$%u!<#-v)%ROwY ztEgfbm}#U7xreN3x9XPl+9Au@%xnNOmbw%OO?VF_W8*!Sc@6?sK2=KttpHfC-wM$$ zjOMYC6BaT=rkKCQuLVs0=+Q?klJW2t$7yr2#B^fKc^5sSa!uis7|gWU6b*fmh-`7xig&!TFgT**x0&m zcsbZhO|+e+Ai3-HvST!}cX8%#&@nl=JI~_OJ^SuwPIgIAGQ%X*ht-%isnMhoL3c9yBytwg=TwMP7 zAVhx;KMV+1!gpSi;^MLdCbH#{`t93Ai@yRHkHdMRH9WwN4r`b{{Y;`t+-JydeZ&n| zvkolqE6<|n&A5fc%=K0kkhpHvy{93<^1A6EB_k7SLK*85CvN^Buq>nc2C~QY3*2$& z|GIxJ+-3elI2Jxk=RFhs>$9wyF2!pQw4~fX%i4hh*9*EyS@P|E$~pvhj}s7%xZ|_O z=tJAP04a+dKA2+TfhA|wcfwVL?@N;Jed+cU;z|g)9tA`9MDa%nL#^GVAAKFC#-4OG z!`un!0serNqvU!LpnpDz&?~_;$TDs4+BuU-k&BE2{MT95mF3ck8%l8uBz{qx)*2tG zQjgQiuHCc@Uu)}nI3q``mIKbSU;PH8d|pW&{N{Z4%$3CsZ)aJ4Or+|rSF^5HJgo$$ zBdyA~dw1pjeKc0kY3p5u%aMP=>rYC!l{wCF+)o2pa<3T|i7?fbvE!VEz4~*IbkE)F z#p8)5=`00<`AlBfR!P?hX4YZCz#J>?py)|-vAg}LLVa_a^*j!xBe9l&EnT%icZZte zFBut?z{@VVg3`WLGyFWb9!gob$==EOm8DSy*ZfUHPiII z8aQBF@=z6w)kIaNv~?SI976^q*?{}JPyh#z;!B54LT>)-pyhFAGkwD3K9-zB$`tc6BELMaIIpV0^XQwz<(rcNv*|WT;@YWixtNBfn|Frtmd|< z%cEDBl}}(R*Cmbj2yH2M3I2H8;xj`LA9yfy<|aw+YYf+YK9=Y;dso8Tq5t|)>zd~V zergR`SpLEXiX<7&x36E{9?$FWv)S@p`!23azecN@i$7AI4$H=tj1-=Cr!bNdGOhCE z(S7+v^c;z9G{lxa2X}#sdtXFeEw1m-h=@FBD>^_Sj6OWw2w9kg-jW~Mg%*Z4IB1IqVnC_w&qvjQpp7+(n4U0D;y zqz*i+Nc+H%02B|gEgu3ITUVORcOeBqVKZvH*t-3-Kg;b`uynnD?}pQ9Rg97p4N!8+ zBZq`6-gVhP8S$LYA`o^h)wm~5pB_ixXz)j+eZ82{@EKkm;+K<)e@L^KZ!myDpS#&tnAGgqk>s99{t7jTVHi3hX1&`i%VneH8WBCbvX{hO!5oLP!|Q z9_AW&fTT!oD!u*XD$bmXRFb*^{EJFWP}E7Zr8x~z8B0PL-d|k8QQL2i(WkEHo1i_W zg+3D(yj}z{^smcuuC53l^zU*mV;7_=fvZZ0@P zN#@5ujuEEMV%fSzx-AddYdTJigh$CbX%`aavY^VInTLaWtFadTON;wtDc1yeq|%fm z`w_018WQ{S3~q4|JF05F!Mcryy^g_2oEhS6bV25#M=w7$l?&IdY&1OHqtk8?eD1t< zL7vPfto6`Z{_)rJk_WV)dsz(-Yp12vj0MF@-UtK*j@MeGwPdp%-`nbKKn=LlrjDsx_nAS<*OO9|G`jDE=G%7f7}IsSm>0qKjz` zvp$1448|qDVKFWP@lJR}@aC%ovy_6&T`$RntmW@#OhC60nzE$+d@P(;368=(htL-A znCN%)-@jv)ei1m70h7561V(rcf-rm`UB=1_zat*qoySUOckfnsI(jBj_;;jb93Y2B z`fqx&&HWb*BTih`|Brvq?1YM+5LeY*Nm4!j>OKNx1aSmrNEiz-7~vsKPTKmg4w(m~ zCUzKOz|*U!ke{1=$2$8~Ha>Vy4ANpe6cv5itr0Nry5V;cgCrN%DOrkbcY>i`OHN9{ z8L7cZ*UnQn8;fTJ1E{6khgQAsq3DeolES@ak{KKvys+efOB?qW`Mt!<<;(RZFdUq% zRRlUzYnFI>1TP}>;h^vB?dS}Gl@}TWoHw`y@opj(yJNHz!8%@icfaSMxSI%ta>?X9*R8U-xX$nq@qaI8KdGv& z?p~1eOi0wRt-K}fWOL~<(*KTsn5bDb+Ti7mH@I-YD*FPSl0{k}hY-fZxAt&N%$)I*Je?cXV)U61Xq0%sCDIT6Q zd;rC+XI}uXTsQk}4=!lw3v$jQXd#xo0kle0rvt{PDyX&X65 z13@69>*JG-0GtLT6(M~hDg@zJH`LW)@R}$oRYP8lkkN{qsZU{wQ^4iGSGHJA^uax%FEANeAQewyj)wXMw{W{_~?A-Y}m^W()e&kvo@<$Xty4`99^mDc9#Ti1Mv z5Alx0ChNZCBER?f?2ml1z?kAxL0(4`{TaTb#-^s{{?U6sw20DljC{o1gPUChZuLV! zUytLSzgPLk8KIvK)A7!}P<`qqh-;tcNiQmI%@G}cR`ArXuiRUkK7Ss3dR&`LowNn> z7>(iY)|5K1EudI=FM19|TGr%>{5hKck~U`lO`NJhjK}>x4xla=10io%{pdWLd*G8{ z$~)^ACBSy%HX4hNLM6~NuW+Pc)#s7YKFiM$l?=(N*%1eZGS3qOhF(bH0g>p&h&yJq z?40Bz@An5XOMJZ|yvy}ip8!fWtQ3Xf$UroUv?^XwZ`~~vxKl@p{q?I?xMeQ~F0HKt z#S_YU8uRFUrS0ch5|VAMs>%v_yT8b1uY0W=ix)UkWtQ#i>e`wHG3fQoQqHup1Z(s4 zWbsL5L&F32R|18Q6@Va;UM;4((ed#=&yV|}BM;vYt?`mAkss1v;EO3aM(`t|DouDi zyUXVJ-d)8;8K9GUhY{N7LP7s|=T%}l$+&C8S<#2W=@N18hNdQ2*9oJFUzmCD9N@*S znUCS|zOB0npS9YE;wYF-aUy^Ga_nm0wzqmOL%lekra={bS@5)D1t2Xmvd>pk%^Z5S z-|Dl?>4L%uK3~&1X=kHLqtXY0RO0j})pc~9T&P7fA~d<6oS`|&G!H%1`>ceJ+eIF7wZAd)S;*1rO@%z8-vRmH@X5WfCW%~eLU zGwye>*A*?s5v?4v-y~Rq9dh3=VJ>ncVy2v6p5&v`zqS5sU2H^P%oH*mrSMeBrvW+ zHV_lTjJ%A$Z9Hm%vzMVs8y*^(X^)UF5rK)O$h4Z=z(*4uEAvy;G!%T&C@~T_ly#pvdjpOI;+E6;cAWQ6Dqrc9;Fau%klNcA0b;b3Q1@ZdLl_icEVn1aDW3{2Y= zxWgI(HTVE%&Rc_@Ld(8=vNmdQ+F{Qw;pHqJ>2VxE47RJZJCIxbpm9E5xj4gvc+sRJ28lZB|Bro- z-KhUoV}D1Mk)c7L^nO7(1H%J(w;l<@JFyMbjQ=JuJTO!62aYgxvrpOK4IChN*yyjo z00bPRz@!VL6|R8t9s@%|Kszw>fxt-?XfzNIp&;ToA48j8e*XJ{a-dNP3{S9__#p4e zu0Q)T7e97OKi=zi>))sPx$^tu7#Z%I296vt-06*rNx2goc~;{0_pQ(B;H{?S6=@uLh9J7d3Ydz3K;RW9$Qc+MRyYI49D#re3f}!^{Ic}fH&@#w QZXgpqUHx3vIVCg!03*Jy=Kufz From 59056dfaf0c13453278730b98f769bec69e599b1 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 6 Jul 2017 09:25:35 +0800 Subject: [PATCH 31/82] fix error --- 4/break.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/4/break.md b/4/break.md index 5bfc256..47ec5b8 100644 --- a/4/break.md +++ b/4/break.md @@ -19,7 +19,15 @@ typedef struct _zend_brk_cont_element { ``` cont记录的是当前循环判断条件opcode起始位置,brk记录的是当前循环结束的位置,parent记录的是父层循环`zend_brk_cont_element`结构的存储位置,也就是说多层嵌套循环会生成一个`zend_brk_cont_element`的链表,每层循环编译结束时更新自己的`zend_brk_cont_element`结构,所以break、continue的处理过程实际就是根据跳出的层级索引到那一层的`zend_brk_cont_element`结构,然后得到它的cont、brk进行相应的opcode跳转。 -各循环的`zend_brk_cont_element`结构保存在`zend_op_array->brk_cont_array`数组中,实际这个数组在编译前就已经分配好了,编译各循环时依次申请一个`zend_brk_cont_element`,`zend_op_array->last_brk_cont`记录此数组第一个可用位置,每申请一个元素last_brk_cont就相应的增加1,parent记录的就是父层循环在`zend_op_array->brk_cont_array`中的位置。 +各循环的`zend_brk_cont_element`结构保存在`zend_op_array->brk_cont_array`数组中,编译各循环时依次申请一个`zend_brk_cont_element`,`zend_op_array->last_brk_cont`记录此数组第一个可用位置,每申请一个元素last_brk_cont就相应的增加1,然后将数组扩容,parent记录的就是父层循环结构在该数组中的存储位置。 +```c +zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array) +{ + op_array->last_brk_cont++; + op_array->brk_cont_array = erealloc(op_array->brk_cont_array, sizeof(zend_brk_cont_element)*op_array->last_brk_cont); + return &op_array->brk_cont_array[op_array->last_brk_cont-1]; +} +``` 示例: ```php From 70108cd0868d0e44c20455e73fd58f349d4436b0 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 7 Jul 2017 16:10:45 +0800 Subject: [PATCH 32/82] fix error --- 7/func.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/func.md b/7/func.md index 0807f69..e04228a 100644 --- a/7/func.md +++ b/7/func.md @@ -355,7 +355,7 @@ callable指函数或成员方法,如果参数是函数名称字符串、array( zend_fcall_info callable; //注意,这两个结构不能是指针 zend_fcall_info_cache call_cache; -if(zend_parse_parameters( +if(zend_parse_parameters(ZEND_NUM_ARGS(), "f", &callable, &call_cache) == FAILURE){ RETURN_FALSE; } ``` From c6983b641bc2285c5c0e0014affa7b47591697f7 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 7 Jul 2017 18:36:26 +0800 Subject: [PATCH 33/82] add defer --- img/defer.png | Bin 0 -> 20196 bytes try/break.md | 2 +- try/defer.md | 23 +++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 img/defer.png create mode 100644 try/defer.md diff --git a/img/defer.png b/img/defer.png new file mode 100644 index 0000000000000000000000000000000000000000..08c48e5a9c3be0704bdb22734f3e075fcc779964 GIT binary patch literal 20196 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 BFvchild[0]; zend_ast *cond_ast = ast->child[1]; diff --git a/try/defer.md b/try/defer.md new file mode 100644 index 0000000..66e35ee --- /dev/null +++ b/try/defer.md @@ -0,0 +1,23 @@ +# 附录2:defer推迟执行语法的实现 + +使用过Go语言的应该都知道defer这个语法,它用来推迟一个函数的执行,在函数执行返回前首先检查当前函数内是否有推迟执行的函数,如果有则执行,然后再返回。defer是一个非常有用的语法,这个功能可以很方便的在函数结束前执行一些清理工作,比如关闭打开的文件、关闭连接、释放资源、解锁等等。这样延迟一个函数有以下两个好处: + + * (1) 靠近使用位置,避免漏掉清理工作,同时比放在函数结尾要清晰 + * (2) 如果有多处返回的地方可以避免代码重复,比如函数中有很多处return + +在一个函数中可以使用多个defer,其执行顺序与栈类似:后进先出,先定义的defer后执行。另外,在返回之后定义的defer将不会被执行,只有返回前定义的才会执行,通过exit退出程序的情况也不会执行任何defer。 + +在PHP中并没有实现类似的语法,接下来我们介绍下如何在PHP中实现类似Go语言中defer的功能。此功能的实现需要对PHP的语法解析、抽象语法树/opcode的编译、opcode指令的执行等环节进行改造,涉及的地方比较多,但是改动点比较简单,可以很好的帮助大家完整的理解PHP编译、执行两个核心阶段的实现。整体实现思路: + + * (1) 语法解析:defer本质上还是函数调用,只是将调用时机移到了函数的最后,所以编译时可以复用调用函数的规则,但是需要与普通的调用区分开,所以我们新增一个AST节点类型,其子节点为为正常函数调用编译的AST,语法我们定义为:`defer function_name()`; + * (2) AST编译为opcode:编译opcode时也复用调用函数的编译逻辑,不同的地方在于把defer放在最后编译,另外需要在编译return前新增一条opcode,用于执行return前跳转到defer开始的位置,在defer的最后也需要新增一条opcode,用于执行完defer后跳回return的位置; + * (3) 执行阶段:执行时如果发现是return前新增的opcode则跳转到defer开始的位置,同时把return的位置记录下来,执行完defer后再跳回return。 + +编译后的opcode指令如下图所示: + +![](../img/defer.png) + +1、修改词法解析文件,将defer解析为token:T_DEFER +2、修改语法解析文件,支持语法:T_DEFER function_call,解析为AST:ZEND_AST_DEFER_CALL +3、编译ZEND_AST_DEFER_CALL时加入defer栈 +4、编译结束时继续编译defer栈中的function_call,最后编译一条ZEND_JMP,用于跳回return/exit/die的位置 From 1a059c238eb688f21bfe6fc99e7e97aed67d9fc7 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 7 Jul 2017 18:39:54 +0800 Subject: [PATCH 34/82] update --- try/defer.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/try/defer.md b/try/defer.md index 66e35ee..7f61355 100644 --- a/try/defer.md +++ b/try/defer.md @@ -2,16 +2,16 @@ 使用过Go语言的应该都知道defer这个语法,它用来推迟一个函数的执行,在函数执行返回前首先检查当前函数内是否有推迟执行的函数,如果有则执行,然后再返回。defer是一个非常有用的语法,这个功能可以很方便的在函数结束前执行一些清理工作,比如关闭打开的文件、关闭连接、释放资源、解锁等等。这样延迟一个函数有以下两个好处: - * (1) 靠近使用位置,避免漏掉清理工作,同时比放在函数结尾要清晰 - * (2) 如果有多处返回的地方可以避免代码重复,比如函数中有很多处return +* (1) 靠近使用位置,避免漏掉清理工作,同时比放在函数结尾要清晰 +* (2) 如果有多处返回的地方可以避免代码重复,比如函数中有很多处return 在一个函数中可以使用多个defer,其执行顺序与栈类似:后进先出,先定义的defer后执行。另外,在返回之后定义的defer将不会被执行,只有返回前定义的才会执行,通过exit退出程序的情况也不会执行任何defer。 在PHP中并没有实现类似的语法,接下来我们介绍下如何在PHP中实现类似Go语言中defer的功能。此功能的实现需要对PHP的语法解析、抽象语法树/opcode的编译、opcode指令的执行等环节进行改造,涉及的地方比较多,但是改动点比较简单,可以很好的帮助大家完整的理解PHP编译、执行两个核心阶段的实现。整体实现思路: - * (1) 语法解析:defer本质上还是函数调用,只是将调用时机移到了函数的最后,所以编译时可以复用调用函数的规则,但是需要与普通的调用区分开,所以我们新增一个AST节点类型,其子节点为为正常函数调用编译的AST,语法我们定义为:`defer function_name()`; - * (2) AST编译为opcode:编译opcode时也复用调用函数的编译逻辑,不同的地方在于把defer放在最后编译,另外需要在编译return前新增一条opcode,用于执行return前跳转到defer开始的位置,在defer的最后也需要新增一条opcode,用于执行完defer后跳回return的位置; - * (3) 执行阶段:执行时如果发现是return前新增的opcode则跳转到defer开始的位置,同时把return的位置记录下来,执行完defer后再跳回return。 +* (1) 语法解析:defer本质上还是函数调用,只是将调用时机移到了函数的最后,所以编译时可以复用调用函数的规则,但是需要与普通的调用区分开,所以我们新增一个AST节点类型,其子节点为为正常函数调用编译的AST,语法我们定义为:`defer function_name()`; +* (2) AST编译为opcode:编译opcode时也复用调用函数的编译逻辑,不同的地方在于把defer放在最后编译,另外需要在编译return前新增一条opcode,用于执行return前跳转到defer开始的位置,在defer的最后也需要新增一条opcode,用于执行完defer后跳回return的位置; +* (3) 执行阶段:执行时如果发现是return前新增的opcode则跳转到defer开始的位置,同时把return的位置记录下来,执行完defer后再跳回return。 编译后的opcode指令如下图所示: From 8552cec11643625189b02e144f4feaed66e876ad Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 7 Jul 2017 19:55:39 +0800 Subject: [PATCH 35/82] add ast --- img/defer_ast.png | Bin 0 -> 14606 bytes try/defer.md | 50 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 img/defer_ast.png diff --git a/img/defer_ast.png b/img/defer_ast.png new file mode 100644 index 0000000000000000000000000000000000000000..db1da709f4a931e719031c1fb100409571a85b60 GIT binary patch literal 14606 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"defer" { + RETURN_TOKEN(T_DEFER); +} +``` +完成词法解析规则的修改后接着需要定义语法解析规则,这是非常关键的一步,语法解析器会根据配置的语法规则将PHP代码解析为抽象语法树(AST)。普通函数调用会被解析为ZEND_AST_CALL类型的AST节点,我们新增一种节点类型:ZEND_AST_DEFER_CALL,抽象语法树的节点类型为enum,定义在zend_ast.h中,同时此节点只需要一个子节点,这个子节点用于保存ZEND_AST_CALL节点,因此zend_ast.h的修改如下: +```c +enum _zend_ast_kind { + ... + /* 1 child node */ + ... + ZEND_AST_DEFER_CALL + .... +} +``` +定义完AST节点后就可以在配置语法解析规则了,把defer语法解析为ZEND_AST_DEFER_CALL节点,我们把这条语法规则定义在"statement:"节点下,if、echo、for等语法都定义在此节点下,语法解析规则文件为zend_language_parser.y: +```c +statement: + '{' inner_statement_list '}' { $$ = $2; } + ... + | T_DEFER function_call ';' { $$ = zend_ast_create(ZEND_AST_DEFER_CALL, $2); } +; +``` +修改完这两个文件后需要分别调用re2c、yacc生成对应的C文件,具体的生成命令可以在Makefile.frag中看到: +```c +$ re2c --no-generation-date --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l +$ yacc -p ini_ -v -d Zend/zend_language_parser.y -oZend/zend_language_parser.c +``` +执行完以后将在Zend目录下重新生成zend_language_scanner.c、zend_language_parser.c两个文件。到这一步已经完成生成抽象语法树的工作了,重新编译PHP后已经能够解析defer语法了,将会生成以下节点: + +![](../img/defer_ast.png) + + From e09183e09b877548f593da43ebd49d9202040edb Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 7 Jul 2017 21:16:52 +0800 Subject: [PATCH 36/82] update --- img/defer_call.png | Bin 0 -> 26242 bytes try/defer.md | 147 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 img/defer_call.png diff --git a/img/defer_call.png b/img/defer_call.png new file mode 100644 index 0000000000000000000000000000000000000000..37c76328f39501a1308c158dde4504b4b27a7efd GIT binary patch literal 26242 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。编译ZEND_AST_DEFER_CALL节点时不能立即进行编译,需要等到当前脚本或函数全部编译完以后再进行编译,所以在编译过程需要把ZEND_AST_DEFER_CALL节点先缓存下来,参考循环结构编译时生成的zend_brk_cont_element的存储位置,我们也把ZEND_AST_DEFER_CALL节点保存在zend_op_array中,通过数组进行存储,将ZEND_AST_DEFER_CALL节点依次存入该数组,zend_op_array中加入以下几个成员: + +* __last_defer:__ 整形,记录当前编译的defer数 +* __defer_start_op:__ 整形,用于记录defer编译生成opcode指令的起始位置 +* __defer_call_array:__ 保存ZEND_AST_DEFER_CALL节点的数组,用于保存ast节点的地址 + +```c +struct _zend_op_array { + ... + int last_defer; + uint32_t defer_start_op; + zend_ast **defer_call_array; +} +``` +修改完数据结构后接着对应修改zend_op_array初始化的过程: +```c +//zend_opcode.c +void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size) +{ + ... + op_array->last_defer = 0; + op_array->defer_start_op = 0; + op_array->defer_call_array = NULL; + ... +} +``` +完成依赖的这些数据结构的改造后接下来开始编写具体的编译逻辑,也就是编译ZEND_AST_DEFER_CALL的处理。抽象语法树的编译入口函数为zend_compile_top_stmt(),然后根据不同节点的类型进行相应的编译,我们在zend_compile_stmt()函数中对ZEND_AST_DEFER_CALL节点进行编译: +```c +void zend_compile_stmt(zend_ast *ast) +{ + ... + switch (ast->kind) { + ... + case ZEND_AST_DEFER_CALL: + zend_compile_defer_call(ast); + break + ... + } +} +``` +编译过程只是将ZEND_AST_DEFER_CALL的子节点(即:ZEND_AST_CALL)保存到zend_op_array->defer_call_array数组中,注意这里defer_call_array数组还没有分配内存,参考循环结构的实现,这里我们定义了一个函数用于数组的分配: +```c +//zend_compile.c +void zend_compile_defer_call(zend_ast *ast) +{ + if(!ast){ + return; + } + + zend_ast **call_ast = NULL; + //将普通函数调用的ast节点保存到defer_call_array数组中 + call_ast = get_next_defer_call(CG(active_op_array)); + *call_ast = ast->child[0]; +} + +//zend_opcode.c +zend_ast **get_next_defer_call(zend_op_array *op_array) +{ + op_array->last_defer++; + op_array->defer_call_array = erealloc(op_array->defer_call_array, sizeof(zend_ast*)*op_array->last_defer); + return &op_array->defer_call_array[op_array->last_defer-1]; +} +``` +既然分配了defer_call_array数组的内存就需要在zend_op_array销毁时释放: +```c +//zend_opcode.c +ZEND_API void destroy_op_array(zend_op_array *op_array) +{ + ... + if (op_array->defer_call_array) { + efree(op_array->defer_call_array); + } + ... +} +``` +编译完整个脚本或函数后,最后还会编译一条ZEND_RETURN,也就是返回指令,相当于ret指令,注意:这条opcode并不是我们在脚本中定义的return语句的,而是PHP内核为我们加的一条指令,这就是为什么有些函数我们没有写return也能返回的原因,任何函数或脚本都会生成这样一条指令。我们缓存在zend_op_array->defer_call_array数组中defer就是要在这时进行编译,也就是把defer的指令编译在最后。内核最后编译返回的这条指令由zend_emit_final_return()方法完成,我们把defer的编译放在此方法的末尾: +```c +//zend_compile.c +void zend_emit_final_return(zval *zv) +{ + ... + ret = zend_emit_op(NULL, returns_reference ? ZEND_RETURN_BY_REF : ZEND_RETURN, &zn, NULL); + ret->extended_value = -1; + + //编译defer call + zend_emit_defer_call(); +} +``` +前面已经说过,defer本质上就是函数调用,所以编译的过程直接复用普通函数调用的即可。另外,在编译时把起始位置记录到zend_op_array->defer_start_op中,因为在执行return前需要知道跳转到什么位置,这个值就是在那时使用的,具体的用法稍后再作说明。编译时按照倒序的顺序进行编译: +```c +//zend_compile.c +void zend_emit_defer_call() +{ + if (!CG(active_op_array)->defer_call_array) { + return; + } + + zend_ast *call_ast; + zend_op *nop; + znode result; + uint32_t opnum = get_next_op_number(CG(active_op_array)); + int defer_num = CG(active_op_array)->last_defer; + + //记录推迟的函数调用指令开始位置 + CG(active_op_array)->defer_start_op = opnum; + + while(--defer_num >= 0){ + call_ast = CG(active_op_array)->defer_call_array[defer_num]; + if (call_ast == NULL) { + continue; + } + nop = zend_emit_op(NULL, ZEND_NOP, NULL, NULL); + nop->op1.var = -2; + //编译函数调用 + zend_compile_call(&result, call_ast, BP_VAR_R); + } + //compile ZEND_DEFER_CALL + zend_emit_op(NULL, ZEND_DEFER_CALL_END, NULL, NULL); +} +``` +编译完推迟的函数调用之后,编译一条ZEND_DEFER_CALL_END指令,该指令用于执行完推迟的函数后跳回return的位置进行返回,opcode定义在zend_vm_opcodes.h中: +```c +//zend_vm_opcodes.h +#define ZEND_DEFER_CALL_END 174 +``` +还有一个地方你可能已经注意到,在逐个编译defer的函数调用前都生成了一条ZEND_NOP的指令,这个的目的是什么呢?开始的时候已经介绍过defer语法的特点,函数中定义的defer并不是全部执行,在return之后定义的defer是不会执行的,比如: +```go +func main(){ + defer fmt.Println("A") + + if 1 == 1{ + return + } + + defer fmt.Println("B") +} +``` +这种情况下第2个defer就不会生效,因此在return前跳转的位置就不一定是zend_op_array->defer_start_op,有可能会跳过几个函数的调用,所以这里我们通过ZEND_NOP这条空指令对多个defer call进行隔离,同时为避免与其它ZEND_NOP指令混淆,增加一个判断条件:op1.var=-2。这样在return前跳转时就根据此前定义的defer数跳过部分函数的调用,如下图所示。 + +![](../img/defer_call.png) + +到这一步我们已经完成defer函数调用的编译,此时重新编译PHP后可以看到通过defer推迟的函数调用已经被编译在最后了,只不过这个时候它们不能被执行。 + +__(3)编译return__ + From 5acabed4f5818e7c598073889762cfc264c3eb9a Mon Sep 17 00:00:00 2001 From: qinpeng Date: Sat, 8 Jul 2017 00:10:24 +0800 Subject: [PATCH 37/82] add defer --- try/defer.md | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 3 deletions(-) diff --git a/try/defer.md b/try/defer.md index 467ff8b..e496056 100644 --- a/try/defer.md +++ b/try/defer.md @@ -48,7 +48,7 @@ statement: 修改完这两个文件后需要分别调用re2c、yacc生成对应的C文件,具体的生成命令可以在Makefile.frag中看到: ```c $ re2c --no-generation-date --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l -$ yacc -p ini_ -v -d Zend/zend_language_parser.y -oZend/zend_language_parser.c +$ yacc -p zend -v -d Zend/zend_language_parser.y -oZend/zend_language_parser.c ``` 执行完以后将在Zend目录下重新生成zend_language_scanner.c、zend_language_parser.c两个文件。到这一步已经完成生成抽象语法树的工作了,重新编译PHP后已经能够解析defer语法了,将会生成以下节点: @@ -140,7 +140,7 @@ void zend_emit_final_return(zval *zv) ret = zend_emit_op(NULL, returns_reference ? ZEND_RETURN_BY_REF : ZEND_RETURN, &zn, NULL); ret->extended_value = -1; - //编译defer call + //编译推迟执行的函数调用 zend_emit_defer_call(); } ``` @@ -172,7 +172,7 @@ void zend_emit_defer_call() //编译函数调用 zend_compile_call(&result, call_ast, BP_VAR_R); } - //compile ZEND_DEFER_CALL + //compile ZEND_DEFER_CALL_END zend_emit_op(NULL, ZEND_DEFER_CALL_END, NULL, NULL); } ``` @@ -201,4 +201,97 @@ func main(){ __(3)编译return__ +编译return时需要插入一条指令用于跳转到推迟执行的函数调用指令处,因此这里需要再定义一条opcode:ZEND_DEFER_CALL,在编译过程中defer call还未编译,因此此时还无法知道具体的跳转值。 +```c +//zend_vm_opcodes.h +#define ZEND_DEFER_CALL 173 +#define ZEND_DEFER_CALL_END 174 +``` +PHP脚本中声明的return语句由zend_compile_return()方法完成编译,在编译生成ZEND_DEFER_CALL指令时还需要将当前已定义的defer数(即在return前声明的defer)记录下来,用于计算具体的跳转值。 +```c +void zend_compile_return(zend_ast *ast) +{ + ... + //在return前编译ZEND_DEFER_CALL:用于在执行retur前跳转到defer call + if (CG(active_op_array)->defer_call_array) { + defer_zn.op_type = IS_UNUSED; + defer_zn.u.op.num = CG(active_op_array)->last_defer; + zend_emit_op(NULL, ZEND_DEFER_CALL, NULL, &defer_zn); + } + + //编译正常返回的指令 + opline = zend_emit_op(NULL, by_ref ? ZEND_RETURN_BY_REF : ZEND_RETURN, + &expr_node, NULL); + ... +} +``` +除了这种return外还有一种我们上面已经提过的return,即PHP内核编译的return指令,当PHP脚本中没有声明return语句时将执行内核添加的那条指令,因此也需要在zend_emit_final_return()加上上面的逻辑。 +```c +void zend_emit_final_return(zval *zv) +{ + ... + //在return前编译ZEND_DEFER_CALL:用于在执行retur前跳转到defer call + if (CG(active_op_array)->defer_call_array) { + //当前return之前定义的defer数 + defer_zn.op_type = IS_UNUSED; + defer_zn.u.op.num = CG(active_op_array)->last_defer; + zend_emit_op(NULL, ZEND_DEFER_CALL, NULL, &defer_zn); + } + + //编译返回指令 + ret = zend_emit_op(NULL, returns_reference ? ZEND_RETURN_BY_REF : ZEND_RETURN, &zn, NULL); + ret->extended_value = -1; + + //编译推迟执行的函数调用 + zend_emit_defer_call(); +} +``` +__(4)计算ZEND_DEFER_CALL指令的跳转位置__ + +前面我们已经完成了推迟调用函数以及return编译过程的改造,在编译完成后ZEND_DEFER_CALL指令已经能够知道具体的跳转位置了,因为推迟调用的函数已经编译完成了,所以下一步就是为全部的ZEND_DEFER_CALL指令计算跳转值。前面曾介绍过,在编译完成有一个pass_two()的环节,我们就在这里完成具体跳转位置的计算,并把跳转位置保存到ZEND_DEFER_CALL指令的操作数中,在执行阶段直接跳转到对应位置。 + +```c +ZEND_API int pass_two(zend_op_array *op_array) +{ + zend_op *opline, *end; + ... + //遍历opcode + opline = op_array->opcodes; + end = opline + op_array->last; + while (opline < end) { + switch (opline->opcode) { + ... + case ZEND_DEFER_CALL: //设置jmp + { + uint32_t defer_start = op_array->defer_start_op; + //skip_defer为当前return之后声明的defer数,也就是不需要执行的defer + uint32_t skip_defer = op_array->last_defer - opline->op2.num; + //defer_opline为推迟的函数调用起始位置 + zend_op *defer_opline = op_array->opcodes + defer_start; + uint32_t n = 0; + + while(n <= skip_defer){ + if (defer_opline->opcode == ZEND_NOP && defer_opline->op1.var == -2) { + n++; + } + defer_opline++; + defer_start++; + } + + //defer_start为opcode在op_array->opcodes数组中的位置 + opline->op1.opline_num = defer_start; + //将跳转位置保存到操作数op1中 + ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); + } + break; + } + ... + } + ... +} +``` +这里我们并没有直接编译为ZEND_JMP跳转指令,虽然ZEND_JMP可以跳转到后面的指令位置,但是最后的那条跳回return位置的指令(即:ZEND_DEFER_CALL_END)由于可能存在多个return的原因无法在编译期间确定具体的跳转值,只能在运行期间执行ZEND_DEFER_CALL时才能确定,所以需要在ZEND_DEFER_CALL指令的handler中将return的位置记录下来,执行ZEND_DEFER_CALL_END时根据这个值跳回。 + +__(5)定义ZEND_DEFER_CALL、ZEND_DEFER_CALL_END指令的handler__ + From a5b413ba145a80ef02ba48dd5200ce16021b25b0 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Sat, 8 Jul 2017 11:57:38 +0800 Subject: [PATCH 38/82] finish defer --- try/defer.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/try/defer.md b/try/defer.md index e496056..0a3230e 100644 --- a/try/defer.md +++ b/try/defer.md @@ -46,7 +46,7 @@ statement: ; ``` 修改完这两个文件后需要分别调用re2c、yacc生成对应的C文件,具体的生成命令可以在Makefile.frag中看到: -```c +```sh $ re2c --no-generation-date --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l $ yacc -p zend -v -d Zend/zend_language_parser.y -oZend/zend_language_parser.c ``` @@ -294,4 +294,62 @@ ZEND_API int pass_two(zend_op_array *op_array) __(5)定义ZEND_DEFER_CALL、ZEND_DEFER_CALL_END指令的handler__ +ZEND_DEFER_CALL指令执行时需要将return的位置保存下来,我们把这个值保存到zend_execute_data结构中: +```c +//zend_compile.h +struct _zend_execute_data { + ... + const zend_op *return_opline; + ... +} +``` +opcode的handler定义在zend_vm_def.h文件中,定义完成后需要执行`php zend_vm_gen.php`脚本生成具体的handler函数。 +```c +ZEND_VM_HANDLER(173, ZEND_DEFER_CALL, ANY, ANY) +{ + USE_OPLINE + + //1) 将return指令的位置保存到EX(return_opline) + EX(return_opline) = opline + 1; + + //2) 跳转 + ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op1)); + ZEND_VM_CONTINUE(); +} + +ZEND_VM_HANDLER(174, ZEND_DEFER_CALL_END, ANY, ANY) +{ + USE_OPLINE + + ZEND_VM_SET_OPCODE(EX(return_opline)); + ZEND_VM_CONTINUE(); +} +``` +到目前为止我们已经完成了全部的修改,重新编译PHP后就可以使用defer语法了: +```php +function shutdown($a){ + echo $a."\n"; +} +function test(){ + $a = 1234; + defer shutdown($a); + + $a = 8888; + + if(1){ + return "mid end\n"; + } + defer shutdown("9999"); + return "last end\n"; +} + +echo test(); +``` +执行后将显示: +```sh +8888 +mid end +``` +这里我们只实现了普通函数调用的方式,关于成员方法、静态方法、匿名函数等调用方式并未实现,留给有兴趣的读者自己去实现。 +完整代码:[https://github.com/pangudashu/php-7.0.12](https://github.com/pangudashu/php-7.0.12) From 8418b469b9c6dbf5d82a9ee17d5b094b1b590d62 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Sat, 8 Jul 2017 11:59:19 +0800 Subject: [PATCH 39/82] finish defer --- README.md | 1 + try/defer.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fcbe4d..0192d2d 100644 --- a/README.md +++ b/README.md @@ -106,4 +106,5 @@ ## 附录 * [附录1:break/continue按标签中断语法实现](try/break.md) + * [附录2:defer推迟函数调用语法的实现](try/defer.md) diff --git a/try/defer.md b/try/defer.md index 0a3230e..761d149 100644 --- a/try/defer.md +++ b/try/defer.md @@ -1,4 +1,4 @@ -# 附录2:defer推迟执行语法的实现 +# 附录2:defer推迟函数调用语法的实现 使用过Go语言的应该都知道defer这个语法,它用来推迟一个函数的执行,在函数执行返回前首先检查当前函数内是否有推迟执行的函数,如果有则执行,然后再返回。defer是一个非常有用的语法,这个功能可以很方便的在函数结束前执行一些清理工作,比如关闭打开的文件、关闭连接、释放资源、解锁等等。这样延迟一个函数有以下两个好处: From 06499a611175fa4b075cbfa0db3ef0ab15c88d25 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 14 Jul 2017 12:45:32 +0800 Subject: [PATCH 40/82] change dir --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0192d2d..06bca77 100644 --- a/README.md +++ b/README.md @@ -85,11 +85,11 @@ * [7.7.6 数组操作](7/var.md) * [7.8 常量](7/constant.md) * 7.9 面向对象 - 7.9.1 内部类注册 - 7.9.2 定义成员属性 - 7.9.3 定义成员方法 - 7.9.4 定义常量 - 7.9.5 类的实例化 + * 7.9.1 内部类注册 + * 7.9.2 定义成员属性 + * 7.9.3 定义成员方法 + * 7.9.4 定义常量 + * 7.9.5 类的实例化 * 7.10 资源类型 * 7.11 经典扩展解析 * 7.8.1 Yaf @@ -106,5 +106,5 @@ ## 附录 * [附录1:break/continue按标签中断语法实现](try/break.md) - * [附录2:defer推迟函数调用语法的实现](try/defer.md) + * 附录2:defer推迟函数调用语法的实现 From 9a4d814fe5f5e69dae9f1a6b24cc91c13ed189b4 Mon Sep 17 00:00:00 2001 From: "byter.hu" Date: Sat, 15 Jul 2017 05:27:41 +0800 Subject: [PATCH 41/82] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复错字 --- 3/function_implement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/function_implement.md b/3/function_implement.md index d3c0fe6..ef4bcb5 100644 --- a/3/function_implement.md +++ b/3/function_implement.md @@ -287,7 +287,7 @@ $greet = function($name) $greet('World'); $greet('PHP'); ``` -这里提函数函数只是想说明编译函数时那个use的用法: +这里提匿名函数只是想说明编译函数时那个use的用法: __匿名函数可以从父作用域中继承变量。 任何此类变量都应该用 use 语言结构传递进去。__ From 6e5b9f43b587b57993e4c1fd6982bdec27166303 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 17 Jul 2017 14:42:25 +0800 Subject: [PATCH 42/82] update --- 7/func.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/7/func.md b/7/func.md index e04228a..5c1101a 100644 --- a/7/func.md +++ b/7/func.md @@ -497,7 +497,7 @@ echo $a; ### 7.6.4 函数返回值 调用内部函数时其返回值指针作为参数传入,这个参数为`zval *return_value`,如果函数有返回值直接设置此指针即可,需要特别注意的是设置返回值时需要增加其引用计数,举个例子来看: - ```c +```c PHP_FUNCTION(my_func_1) { zval *arr; @@ -510,8 +510,6 @@ PHP_FUNCTION(my_func_1) Z_ADDREF_P(arr); //设置返回值为数组: - //return_value->u1.type = IS_ARRAY; - //return_value->value->arr = arr->value->arr; ZVAL_ARR(return_value, Z_ARR_P(arr)); } ``` From db02aafbbd43d58f29c406b07a7334eb49608bc4 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 17 Jul 2017 16:52:17 +0800 Subject: [PATCH 43/82] fix error --- 7/func.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/func.md b/7/func.md index 5c1101a..1ce3f35 100644 --- a/7/func.md +++ b/7/func.md @@ -123,7 +123,7 @@ PHP_FUNCTION(my_func_1) ![](../img/internal_func_param.png) -注意:解析时除了整形、浮点型、布尔型是直接硬拷贝value外,其它解析到的变量只能是指针,arr为zend_execute_data上param_1的地址,即:`zval *arr = ¶m_1`,所以图中arr、param_1之间用的不是箭头指向,也就是说参数始终存储在zend_execute_data上,解析获取的是这些参数的地址。`zend_parse_parameters()`调用了`zend_parse_va_args()`进行处理,简单看下解析过程: +注意:解析时除了整形、浮点型、布尔型是直接硬拷贝value外,其它解析到的变量只能是指针,arr为zend_execute_data上param_1的地址,即:`zval *arr = ¶m_1`,也就是说参数始终存储在zend_execute_data上,解析获取的是这些参数的地址。`zend_parse_parameters()`调用了`zend_parse_va_args()`进行处理,简单看下解析过程: ```c //va就是定义的要解析到的各个变量的地址 static int zend_parse_va_args(int num_args, const char *type_spec, va_list *va, int flags) From 95ec461b4eaa0bbcb6992c62d9d5f7eca3498f20 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 17 Jul 2017 17:57:06 +0800 Subject: [PATCH 44/82] fix error --- 7/func.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/func.md b/7/func.md index 1ce3f35..e492812 100644 --- a/7/func.md +++ b/7/func.md @@ -229,7 +229,7 @@ static zend_always_inline int zend_parse_arg_long(zval *arg, zend_long *dest, ze return 1; } ``` -> __Note:__ "l"与"L"的区别在于,当传参不是整形且转为整形后超过了整形的大小范围时,"L"将值调整为整形的最大或最小值,而"l"将报错,比如传的参数是字符串"9223372036854775808",转整形后超过了unsigned int64的最大值:0xFFFFFFFFFFFFFFFF,"L"将解析为0xFFFFFFFFFFFFFFFF。 +> __Note:__ "l"与"L"的区别在于,当传参不是整形且转为整形后超过了整形的大小范围时,"L"将值调整为整形的最大或最小值,而"l"将报错,比如传的参数是字符串"9223372036854775808"(0x7FFFFFFFFFFFFFFF + 1),转整形后超过了有符号int64的最大值:0x7FFFFFFFFFFFFFFF,所以如果是"L"将解析为0x7FFFFFFFFFFFFFFF。 #### 7.6.2.2 布尔型:b 通过"b"标识符表示将传入的参数解析为布尔型,解析到的变量必须是zend_bool: From 56163b40731c1735f6b75c9a8bcd904c4e21fe2f Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 13:18:43 +0800 Subject: [PATCH 45/82] add global register variables --- 3/zend_global_register.md | 28 ++++++++++++++++++++++++++++ img/executor.png | Bin 0 -> 13778 bytes 2 files changed, 28 insertions(+) create mode 100644 3/zend_global_register.md create mode 100644 img/executor.png diff --git a/3/zend_global_register.md b/3/zend_global_register.md new file mode 100644 index 0000000..44f5c9a --- /dev/null +++ b/3/zend_global_register.md @@ -0,0 +1,28 @@ +### 3.3.4 全局execute_data和opline +Zend执行器在opcode的执行过程中,会频繁的用到execute_data和opline两个变量,execute_data为zend_execute_data结构,opline为当前执行的指令。普通的处理方式在执行每条opcode指令的handler时,会把execute_data地址作为参数传给handler使用,使用时先从当前栈上获取execute_data地址,然后再从堆上获取变量的数据,这种方式下Zend执行器展开后是下面这样: +```c +ZEND_API void execute_ex(zend_execute_data *ex) +{ + zend_execute_data *execute_data = ex; + + while (1) { + int ret; + + if (UNEXPECTED((ret = ((opcode_handler_t)execute_data->opline->handler)(execute_data)) != 0)) { + if (EXPECTED(ret > 0)) { + execute_data = EG(current_execute_data); + } else { + return; + } + } + } +} +``` +执行器实际是一个大循环,从第一条opcode开始执行,execute_data->opline指向当前执行的指令,执行完以后指向下一条指令,opline类似eip(或rip)寄存器的作用。通过这个循环,ZendVM完成opcode指令的执行,如下图。 + +![](../img/executor.png) + + + + +全局寄存器变量(Global Register Variables)是数据保存在寄存器中的一种变量类型,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其次是内存,最慢的是内存。 diff --git a/img/executor.png b/img/executor.png new file mode 100644 index 0000000000000000000000000000000000000000..f2cdbe77ec115b8d3b226118461723c45a9d91c7 GIT binary patch literal 13778 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 KVyXOx!2bhw6w<%| literal 0 HcmV?d00001 From 67ea35249f73e94634f3242e227410eb992c0221 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 14:25:34 +0800 Subject: [PATCH 46/82] update --- 3/zend_global_register.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 44f5c9a..898ad6c 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -18,11 +18,44 @@ ZEND_API void execute_ex(zend_execute_data *ex) } } ``` -执行器实际是一个大循环,从第一条opcode开始执行,execute_data->opline指向当前执行的指令,执行完以后指向下一条指令,opline类似eip(或rip)寄存器的作用。通过这个循环,ZendVM完成opcode指令的执行,如下图。 +执行器实际是一个大循环,从第一条opcode开始执行,execute_data->opline指向当前执行的指令,执行完以后指向下一条指令,opline类似eip(或rip)寄存器的作用。通过这个循环,ZendVM完成opcode指令的执行。opcode执行完后以后指向下一条指令的操作是在当前handler中完成,也就是说每条执行执行完以后会主动更新opline,这里会有下面几个不同的动作: +```c +ZEND_VM_CONTINUE() +ZEND_VM_ENTER() +ZEND_VM_LEAVE() +ZEND_VM_RETURN() +``` +ZEND_VM_CONTINUE()表示继续执行下一条opcode;ZEND_VM_ENTER()/ZEND_VM_LEAVE()是调用函数时的动作,普通模式下ZEND_VM_ENTER()实际就是return 1,然后execute_ex()中会将execute_data切换到被调函数的结构上,对应的,在函数调用完成后ZEND_VM_LEAVE()会return 2,再将execute_data切换至原来的结构;ZEND_VM_RETURN()表示执行完成,比如exit,这时候execute_ex()将退出执行。下面看一个具体的例子: +```php +$a = "hi~"; +echo $a; +``` +执行过程如下图所示: ![](../img/executor.png) +以ZEND_ASSIGN这条赋值指令为例,其handler展开前如下: +```c +static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + ... + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); +} +``` +所有opcode的handler定义格式都是相同的,其参数列表通过ZEND_OPCODE_HANDLER_ARGS宏定义,展开后实际只有一个execute_data;ZEND_FASTCALL这个宏是用于指定C语言函数调用方式的,这里指定的是fastcall方式,GNU C下就是__attribute__((fastcall))。去掉一些非关键操作展开后: +```c +static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_execute_data *execute_data) +{ + //USE_OPLINE + const zend_op *opline = execute_data->opline; + ... + //ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION() + execute_data->opline = execute_data->opline + 1; + return 0; +} +``` +从这个例子可以很清楚的看到,执行完以后会将execute_data->opline加1,也就是指向下一条opcode,然后返回0给execute_ex(),接着执行器在下一次循环时执行下一条opcode,依次类推,直至所有的opcode执行完成。 - -全局寄存器变量(Global Register Variables)是数据保存在寄存器中的一种变量类型,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其次是内存,最慢的是内存。 +全局寄存器变量(Global Register Variables)是数据保存在寄存器中的一种变量,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其次是内存,最慢的是内存。寄存器变量 From 34a9e6fbe17c5aa9d400e78247f888723cadaf69 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 14:26:15 +0800 Subject: [PATCH 47/82] update --- img/executor.png | Bin 13778 -> 23846 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/executor.png b/img/executor.png index f2cdbe77ec115b8d3b226118461723c45a9d91c7..dfbb4618cf57977f68391c9919fc5d7f01f13a4c 100644 GIT binary patch literal 23846 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 literal 13778 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 KVyXOx!2bhw6w<%| From ddfbddd0dd901d3ce0e233cb3ba7dbd365e09ac2 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 15:25:34 +0800 Subject: [PATCH 48/82] update --- 3/zend_global_register.md | 57 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 898ad6c..6d9b24e 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -56,6 +56,59 @@ static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_exe return 0; } ``` -从这个例子可以很清楚的看到,执行完以后会将execute_data->opline加1,也就是指向下一条opcode,然后返回0给execute_ex(),接着执行器在下一次循环时执行下一条opcode,依次类推,直至所有的opcode执行完成。 +从这个例子可以很清楚的看到,执行完以后会将execute_data->opline加1,也就是指向下一条opcode,然后返回0给execute_ex(),接着执行器在下一次循环时执行下一条opcode,依次类推,直至所有的opcode执行完成。这个处理过程比较简单,并没有不好理解的地方,而且整个过程看起来也都那么顺理成章。PHP7针对execute_data、opline两个变量的存储位置进行了优化,那就是使用全局寄存器保存这两个变量的地址,以实现更高效率的读取。这种方式下execute_data、opline直接从寄存器读取地址,在性能上大概有5%的提升(官方说法)。在分析PHP7的优化之前,我们先简单介绍下什么是寄存器变量。 + +寄存器变量存放在CPU的寄存器中,使用时,不需要访问内存直接从寄存器中读写,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其>次是内存,最慢的是内存。C语言中使用关键字register来声明局部变量为寄存器变量,需要注意的是,只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 + +GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量,也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: +```c +register int *foo asm ("r12"); //r12、%r12 +``` +或者: +```c +register int *foo __asm__ ("r12"); //r12、%r12 +``` +这里r12就是指定使用的寄存器,它必须是运行平台上有效的寄存器,这样就可以像使用普通的变量一样使用foo,但是foo同样没有地址,也就是无法通过&获取它的地址,在gdb调试时也无法使用foo符号,只能使用对应的寄存器获取数据。举个例子来看: +```c +//main.c +#include + +typedef struct _execute_data { + int ip; +}zend_execute_data; + + +register zend_execute_data* execute_data __asm__ ("%r14"); + +int main(void) +{ + execute_data = (zend_execute_data *)malloc(sizeof(zend_execute_data)); + execute_data->ip = 9999; + + return 0; +} +``` +编译:`$ gcc -o main -g main.c`,然后通过gdb看下: +```sh +$ gdb main +(gdb) break main +(gdb) r +Starting program: /home/qinpeng/c/php/main + +Breakpoint 1, main () at main.c:12 +12 execute_data = (zend_execute_data *)malloc(sizeof(zend_execute_data)); +(gdb) n +13 execute_data->ip = 9999; +(gdb) n +15 return 0; +``` +这时我们就无法再像普通变量那样直接使用execute_data访问数据,只能通过r14寄存器读取: +```sh +(gdb) p execute_data +Missing ELF symbol "execute_data". +(gdb) info register r14 +r14 0x601010 6295568 +(gdb) p ((zend_execute_data *)$r14)->ip +$3 = 9999 +``` -全局寄存器变量(Global Register Variables)是数据保存在寄存器中的一种变量,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其次是内存,最慢的是内存。寄存器变量 From 8b3d976818c26364056596c23e77484769e2ab9d Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 17:43:39 +0800 Subject: [PATCH 49/82] update --- 3/zend_global_register.md | 67 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 6d9b24e..18e15d8 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -20,12 +20,12 @@ ZEND_API void execute_ex(zend_execute_data *ex) ``` 执行器实际是一个大循环,从第一条opcode开始执行,execute_data->opline指向当前执行的指令,执行完以后指向下一条指令,opline类似eip(或rip)寄存器的作用。通过这个循环,ZendVM完成opcode指令的执行。opcode执行完后以后指向下一条指令的操作是在当前handler中完成,也就是说每条执行执行完以后会主动更新opline,这里会有下面几个不同的动作: ```c -ZEND_VM_CONTINUE() -ZEND_VM_ENTER() -ZEND_VM_LEAVE() -ZEND_VM_RETURN() +#define ZEND_VM_CONTINUE() return 0 +#define ZEND_VM_ENTER() return 1 +#define ZEND_VM_LEAVE() return 2 +#define ZEND_VM_RETURN() return -1 ``` -ZEND_VM_CONTINUE()表示继续执行下一条opcode;ZEND_VM_ENTER()/ZEND_VM_LEAVE()是调用函数时的动作,普通模式下ZEND_VM_ENTER()实际就是return 1,然后execute_ex()中会将execute_data切换到被调函数的结构上,对应的,在函数调用完成后ZEND_VM_LEAVE()会return 2,再将execute_data切换至原来的结构;ZEND_VM_RETURN()表示执行完成,比如exit,这时候execute_ex()将退出执行。下面看一个具体的例子: +ZEND_VM_CONTINUE()表示继续执行下一条opcode;ZEND_VM_ENTER()/ZEND_VM_LEAVE()是调用函数时的动作,普通模式下ZEND_VM_ENTER()实际就是return 1,然后execute_ex()中会将execute_data切换到被调函数的结构上,对应的,在函数调用完成后ZEND_VM_LEAVE()会return 2,再将execute_data切换至原来的结构;ZEND_VM_RETURN()表示执行完成,返回-1给execute_ex(),比如exit,这时候execute_ex()将退出执行。下面看一个具体的例子: ```php $a = "hi~"; echo $a; @@ -111,4 +111,61 @@ r14 0x601010 6295568 (gdb) p ((zend_execute_data *)$r14)->ip $3 = 9999 ``` +了解完全局寄存器变量,接下来我们再回头看下PHP7中的用法,处理也比较简单,就是在execute_ex()执行各opcode指令的过程中,不再将execute_data作为参数传给handler,而是通过寄存器保存execute_data及opline的地址,handler使用时直接从全局变量(寄存器)读取,执行完再把下一条指令更新到全局变量。 +该功能需要GCC 4.8+支持,默认开启,可以通过 --disable-gcc-global-regs 编译参数关闭。以x86_64为例,execute_data使用r14寄存器,opline使用r15寄存器: +```c +//file: zend_execute.c line: 2631 +# define ZEND_VM_FP_GLOBAL_REG "%r14" +# define ZEND_VM_IP_GLOBAL_REG "%r15" + +//file: zend_vm_execute.h line: 315 +register zend_execute_data* volatile execute_data __asm__(ZEND_VM_FP_GLOBAL_REG); +register const zend_op* volatile opline __asm__(ZEND_VM_IP_GLOBAL_REG); +``` +execute_data、opline定义为全局变量,下面看下execute_ex()的变化,展开后: +```c +ZEND_API void execute_ex(zend_execute_data *ex) +{ + const zend_op *orig_opline = opline; + zend_execute_data *orig_execute_data = execute_data; + + //将当前execute_data、opline保存到全局变量 + execute_data = ex; + opline = execute_data->opline + + while (1) { + ((opcode_handler_t)opline->handler)(); + + if (UNEXPECTED(!opline)) { + execute_data = orig_execute_data; + opline = orig_opline; + + return; + } + } +} +``` +这个时候调用各opcode指令的handler时就不再传入execute_data的参数了,handler使用时直接从全局变量读取,仍以上面的赋值ZEND_ASSIGN指令为例,handler展开后: +```c +static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(void) +{ + ... + + //ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION() + opline = execute_data->opline + 1; + return; +} +``` +当调用函数时,会把execute_data、opline更新为被调函数的,然后回到execute_ex()开始执行被调函数的指令: +```c +# define ZEND_VM_ENTER() execute_data = EG(current_execute_data); LOAD_OPLINE(); ZEND_VM_CONTINUE() +``` +展开后: +```c +//ZEND_VM_ENTER() +execute_data = execute_data->current_execute_data; +opline = execute_data->opline; +return; +``` +这两种处理方式并没有本质上的差异,只是通过全局寄存器变量提升了一些性能。 From ac29cb0d9821778a692c18d63407699500526a3e Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 17:48:30 +0800 Subject: [PATCH 50/82] update dir --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06bca77..ccdf4aa 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ * 3.3.1 基本结构 * 3.3.2 执行流程 * 3.3.3 函数的执行流程 + * [3.3.4 全局execute_data和opline](3/zend_global_register.md) * 3.4 面向对象实现 * [3.4.1 类](3/zend_class.md) * [3.4.2 对象](3/zend_object.md) From ac38e217dea0823f5502c783464a6dd8bb0ef3f4 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 17:57:34 +0800 Subject: [PATCH 51/82] update --- 3/zend_global_register.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 18e15d8..66d7c41 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -169,3 +169,5 @@ opline = execute_data->opline; return; ``` 这两种处理方式并没有本质上的差异,只是通过全局寄存器变量提升了一些性能。 + +> __Note:__ automake编译时的命令是cc,而不是gcc,如果更新gcc后发现PHP仍然没有支持这个特性,请检查下cc是否指向了新的gcc From 5461dedcc55da125508199a97104e7dbc74f3e71 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 18:02:14 +0800 Subject: [PATCH 52/82] update --- 3/zend_global_register.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 66d7c41..f091eda 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -60,7 +60,7 @@ static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_exe 寄存器变量存放在CPU的寄存器中,使用时,不需要访问内存直接从寄存器中读写,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其>次是内存,最慢的是内存。C语言中使用关键字register来声明局部变量为寄存器变量,需要注意的是,只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 -GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量,也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: +GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量(Global Register Variables,参考:https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Global-Register-Variables.html),也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: ```c register int *foo asm ("r12"); //r12、%r12 ``` From c0de5f804b3184582e8e3d7af1dc13f1e585e921 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 19 Jul 2017 18:03:20 +0800 Subject: [PATCH 53/82] update --- 3/zend_global_register.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index f091eda..93a52ea 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -60,7 +60,7 @@ static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_exe 寄存器变量存放在CPU的寄存器中,使用时,不需要访问内存直接从寄存器中读写,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其>次是内存,最慢的是内存。C语言中使用关键字register来声明局部变量为寄存器变量,需要注意的是,只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 -GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量(Global Register Variables,参考:https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Global-Register-Variables.html),也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: +GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量(Global Register Variables,[详细介绍](https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Global-Register-Variables.html)),也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: ```c register int *foo asm ("r12"); //r12、%r12 ``` From ed96756cb3cf3bed4c07591665dac3efee2764ff Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 20 Jul 2017 10:12:35 +0800 Subject: [PATCH 54/82] update --- 3/zend_global_register.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 93a52ea..51cd81f 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -58,7 +58,7 @@ static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_exe ``` 从这个例子可以很清楚的看到,执行完以后会将execute_data->opline加1,也就是指向下一条opcode,然后返回0给execute_ex(),接着执行器在下一次循环时执行下一条opcode,依次类推,直至所有的opcode执行完成。这个处理过程比较简单,并没有不好理解的地方,而且整个过程看起来也都那么顺理成章。PHP7针对execute_data、opline两个变量的存储位置进行了优化,那就是使用全局寄存器保存这两个变量的地址,以实现更高效率的读取。这种方式下execute_data、opline直接从寄存器读取地址,在性能上大概有5%的提升(官方说法)。在分析PHP7的优化之前,我们先简单介绍下什么是寄存器变量。 -寄存器变量存放在CPU的寄存器中,使用时,不需要访问内存直接从寄存器中读写,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其>次是内存,最慢的是内存。C语言中使用关键字register来声明局部变量为寄存器变量,需要注意的是,只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 +寄存器变量存放在CPU的寄存器中,使用时,不需要访问内存直接从寄存器中读写,与存储在内存中的变量相比,寄存器变量具有更快的访问速度,在计算机的存储层次中,寄存器的速度最快,其次是内存,最慢的是硬盘。C语言中使用关键字register来声明局部变量为寄存器变量,需要注意的是,只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 GCC从4.8.0版本开始支持了另外一项特性:全局寄存器变量(Global Register Variables,[详细介绍](https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Global-Register-Variables.html)),也就是可以把全局变量定义为寄存器变量,从而可以实现函数间共享数据。可以通过下面的语法告诉编译器使用寄存器来保存数据: ```c From ee2e98fb01d7b734dad19f33bb2054ce7b78c111 Mon Sep 17 00:00:00 2001 From: "byter.hu" Date: Sat, 22 Jul 2017 02:13:06 +0800 Subject: [PATCH 55/82] Update func.md fix error --- 7/func.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/func.md b/7/func.md index e04228a..a1fd5e9 100644 --- a/7/func.md +++ b/7/func.md @@ -67,7 +67,7 @@ const zend_function_entry mytest_functions[] = { #define ZEND_FENTRY(zend_name, name, arg_info, flags) { #zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags }, #define ZEND_FN(name) zif_##name ``` -最后将`zend_module_entry->functions`设置为`timeout_functions`即可: +最后将`zend_module_entry->functions`设置为`mytest_functions`即可: ```c zend_module_entry mytest_module_entry = { STANDARD_MODULE_HEADER, From 3e09906791e3f375bb9a85bbfd5c3533a125ebe3 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 24 Jul 2017 17:17:29 +0800 Subject: [PATCH 56/82] fix error --- 3/zend_global_register.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3/zend_global_register.md b/3/zend_global_register.md index 51cd81f..9c9462e 100644 --- a/3/zend_global_register.md +++ b/3/zend_global_register.md @@ -43,9 +43,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(Z ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); } ``` -所有opcode的handler定义格式都是相同的,其参数列表通过ZEND_OPCODE_HANDLER_ARGS宏定义,展开后实际只有一个execute_data;ZEND_FASTCALL这个宏是用于指定C语言函数调用方式的,这里指定的是fastcall方式,GNU C下就是__attribute__((fastcall))。去掉一些非关键操作展开后: +所有opcode的handler定义格式都是相同的,其参数列表通过ZEND_OPCODE_HANDLER_ARGS宏定义,展开后实际只有一个execute_data,展开后: ```c -static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_execute_data *execute_data) +static int ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(zend_execute_data *execute_data) { //USE_OPLINE const zend_op *opline = execute_data->opline; @@ -148,7 +148,7 @@ ZEND_API void execute_ex(zend_execute_data *ex) ``` 这个时候调用各opcode指令的handler时就不再传入execute_data的参数了,handler使用时直接从全局变量读取,仍以上面的赋值ZEND_ASSIGN指令为例,handler展开后: ```c -static int __attribute__((fastcall)) ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(void) +static int ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(void) { ... From bfdd8fd5bfb4a3a5b7a3ec68e2fa4b9b4b525ae8 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 25 Jul 2017 11:08:08 +0800 Subject: [PATCH 57/82] update --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ccdf4aa..dbec699 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,10 @@ * [3.4.5 魔术方法](3/zend_magic_method.md) * [3.4.6 类的自动加载](3/zend_autoload.md) * [3.5 运行时缓存](3/zend_runtime_cache.md) + * 3.6 Opcache + * 3.6.1 opcode缓存 + * 3.6.2 opcode优化 + * 3.6.3 JIT * 第4章 PHP基础语法实现 * [4.1 类型转换](4/type.md) * [4.2 选择结构](4/if.md) From 163db8b5856f3f9f5ad76344fbb63fa2713c744d Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 25 Jul 2017 15:03:13 +0800 Subject: [PATCH 58/82] fix error --- 2/zend_constant.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/zend_constant.md b/2/zend_constant.md index fad305c..eca3f65 100644 --- a/2/zend_constant.md +++ b/2/zend_constant.md @@ -8,7 +8,7 @@ PHP中的常量通过`define()`函数定义: define('CONST_VAR_1', 1234); ``` ### 2.5.1 常量的存储 -在内核中常量存储在`EG(zend_constant)`哈希表中,访问时也是根据常量名直接到哈希表中查找,其实现比较简单。 +在内核中常量存储在`EG(zend_constants)`哈希表中,访问时也是根据常量名直接到哈希表中查找,其实现比较简单。 常量的数据结构: ```c From 337ab9c385d669d64a2554ea60867c5297c52170 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 25 Jul 2017 21:13:09 +0800 Subject: [PATCH 59/82] update --- 2/global_var.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/2/global_var.md b/2/global_var.md index a6e90fc..5537b51 100644 --- a/2/global_var.md +++ b/2/global_var.md @@ -1,7 +1,5 @@ ## 2.4 全局变量 -PHP中在函数、类之外直接定义的变量可以在函数、类成员方法中通过global关键词引入使用,这些变量称为:全局变量。 - -这些直接在PHP中定义的变量(包括include、require文件中的)相对于函数、类方法而言它们是全局变量,但是对自身执行域zend_execute_data而言它们是普通的局部变量,自身执行时它们与普通变量的读写方式完全相同。 +PHP中把定义在函数、类之外的变量称之为全局变量,也就是定义在主脚本中的变量,这些变量可以在函数、成员方法中通过global关键字引入使用。 ```php function test() { From cec1807fe0c946e146565ebfa1cbdef5311ba47c Mon Sep 17 00:00:00 2001 From: qinpeng Date: Wed, 26 Jul 2017 16:38:28 +0800 Subject: [PATCH 60/82] update --- 2/global_var.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/global_var.md b/2/global_var.md index 5537b51..e9515d4 100644 --- a/2/global_var.md +++ b/2/global_var.md @@ -62,7 +62,7 @@ global $id; // 相当于:$id = & EG(symbol_table)["id"]; ![](../img/zend_global_ref.png) ### 2.4.3 超全局变量 -全部变量除了通过global引入外还有一类特殊的类型,它们不需要使用global引入而可以直接使用,这些全局变量称为:超全局变量。 +全局变量除了通过global引入外还有一类特殊的类型,它们不需要使用global引入而可以直接使用,这些全局变量称为:超全局变量。 超全局变量实际是PHP内核定义的一些全局变量:$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION、argv、argc。 From a6eec9f8121a4bf35664e57524bd39b4fa96f8ba Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 27 Jul 2017 20:38:56 +0800 Subject: [PATCH 61/82] fix error --- 8/namespace.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/8/namespace.md b/8/namespace.md index b9b7c6d..d59d086 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -259,7 +259,7 @@ typedef struct _zend_file_context { ``` 简单总结下use的几种不同用法: * __a.导入命名空间:__ 导入的名称保存在FC(imports)中,编译使用的语句时搜索此符号表进行补全 -* __b.导入类:__ 导入的名称保存在FC(imports)中,与a不同的时如果不会根据"\"切割后的最后一节检索,而是直接使用类名查找 +* __b.导入类:__ 导入的名称保存在FC(imports)中,与a不同的是不会根据"\"切割后的最后一节检索,而是直接使用类名查找 * __c.导入函数:__ 通过`use function`导入到FC(imports_function),补全时先查找FC(imports_function),如果没有找到则继续按照a的情况处理 * __d.导入常量:__ 通过`use const`导入到FC(imports_const),不全是先查找FC(imports_const),如果没有找到则继续按照a的情况处理 From fb2385c368209a0d48f3e050bccce499f118102e Mon Sep 17 00:00:00 2001 From: qinpeng Date: Thu, 27 Jul 2017 20:40:29 +0800 Subject: [PATCH 62/82] fix error --- 8/namespace.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/8/namespace.md b/8/namespace.md index d59d086..dc5ac2b 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -261,7 +261,7 @@ typedef struct _zend_file_context { * __a.导入命名空间:__ 导入的名称保存在FC(imports)中,编译使用的语句时搜索此符号表进行补全 * __b.导入类:__ 导入的名称保存在FC(imports)中,与a不同的是不会根据"\"切割后的最后一节检索,而是直接使用类名查找 * __c.导入函数:__ 通过`use function`导入到FC(imports_function),补全时先查找FC(imports_function),如果没有找到则继续按照a的情况处理 -* __d.导入常量:__ 通过`use const`导入到FC(imports_const),不全是先查找FC(imports_const),如果没有找到则继续按照a的情况处理 +* __d.导入常量:__ 通过`use const`导入到FC(imports_const),补全时先查找FC(imports_const),如果没有找到则继续按照a的情况处理 ```php use aa\bb; //导入namespace From 3edb26dc0af49be9adead33e9045678493508e7b Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 28 Jul 2017 14:25:39 +0800 Subject: [PATCH 63/82] fix error --- 8/namespace.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/8/namespace.md b/8/namespace.md index dc5ac2b..58ac9fe 100644 --- a/8/namespace.md +++ b/8/namespace.md @@ -427,7 +427,7 @@ zend_string *zend_resolve_non_class_name( return zend_prefix_with_ns(name); } ``` -可以看到,函数与常量的的补全逻辑只是优先用原始名称去FC(imports_function)或FC(imports_const)查找,如果没有找到再去FC(imports)中匹配。如果我们这样导入了一个函数:`use aa\bb\my_func;`,编译`my_func()`会在FC(imports_function)中根据"my_func"找到"aa\bb\my_func",从而使用完整的这个名称。 +可以看到,函数与常量的的补全逻辑只是优先用原始名称去FC(imports_function)或FC(imports_const)查找,如果没有找到再去FC(imports)中匹配。如果我们这样导入了一个函数:`use function aa\bb\my_func;`,编译`my_func()`会在FC(imports_function)中根据"my_func"找到"aa\bb\my_func",从而使用完整的这个名称。 ### 8.3.3 动态用法 前面介绍的这些命名空间的使用都是名称为CONST类型的情况,所有的处理都是在编译环节完成的,PHP是动态语言,能否动态使用命名空间呢?举个例子: From c84843bd92c33080dd344b1582d193c29aaa13e8 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 1 Aug 2017 17:53:26 +0800 Subject: [PATCH 64/82] fix error --- 4/loop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4/loop.md b/4/loop.md index 19ce394..f698d0e 100644 --- a/4/loop.md +++ b/4/loop.md @@ -241,7 +241,7 @@ foreach($arr as $k=>$v){ 了解了foreach的实现、运行机制我们再回头看下其编译过程: -* __(1)__ 编译"拷贝"数组/对象操作的opcode:`ZEND_FE_RESET_R`,如果value是引用则是`ZEND_FE_RESET_RW`,执行时如果发现数组或对象属性为空则直接跳出遍历,所以这条opcode还需要知道跳出的位置,这个位置需要编译完foreach以后才能确定; +* __(1)__ 编译拷贝数组、对象操作的指令:ZEND_FE_RESET_R,如果value是引用则是ZEND_FE_RESET_RW。执行时如果发现遍历的变量不是数组、对象,则抛出一个warning,然后跳出循环,所以这条指令还需要知道跳出的位置,这个位置需要编译完foreach以后才能确定; * __(2)__ 编译fetch数组/对象当前单元key、value的opcode:`ZEND_FE_FETCH_R`,如果是引用则是`ZEND_FE_FETCH_RW`,此opcode还需要知道当遍历已经到达数组末尾时跳出遍历的位置,与步骤(1)的opcode相同,另外还有一个关键操作,前面已经说过遍历的key、value实际就是普通的局部变量,它们的内存存储位置正是在这一步分配确定的,分配过程与普通局部变量的过程完全相同,如果value不是一个CV变量(比如:foreach($arr as $v["xx"]){...})则还会编译其它操作的opcode; * __(3)__ 如果foreach定义了key则编译一条赋值opcode,此操作是对key进行赋值; * __(4)__ 编译循环体statement; From c9275007b354068318fc35322cc197481faec8c3 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 4 Aug 2017 14:35:12 +0800 Subject: [PATCH 65/82] fix error --- 3/zend_class.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_class.md b/3/zend_class.md index e0bc8f5..b7099af 100644 --- a/3/zend_class.md +++ b/3/zend_class.md @@ -416,7 +416,7 @@ void zend_compile_class_const_decl(zend_ast *ast) zend_class_entry *ce = CG(active_class_entry); uint32_t i; - for (i = 0; i < list->children; ++i) { //不清楚这个地方为什么要用list,试了几个例子这个节点都只有一个child,即for只循环一次 + for (i = 0; i < list->children; ++i) { //const声明了多个常量,遍历编译每个子节点 zend_ast *const_ast = list->child[i]; zend_ast *name_ast = const_ast->child[0]; //常量名节点 zend_ast *value_ast = const_ast->child[1];//常量值节点 From 42c82f65cedbf7a08d0d4d67476a9a60b28a2da3 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 4 Aug 2017 14:46:28 +0800 Subject: [PATCH 66/82] fix error --- 3/zend_class.md | 1 - 1 file changed, 1 deletion(-) diff --git a/3/zend_class.md b/3/zend_class.md index b7099af..f67783b 100644 --- a/3/zend_class.md +++ b/3/zend_class.md @@ -446,7 +446,6 @@ void zend_compile_prop_decl(zend_ast *ast) zend_class_entry *ce = CG(active_class_entry); uint32_t i, children = list->children; - //也不清楚这里为啥用循环,测试的情况child只有一个 for (i = 0; i < children; ++i) { zend_ast *prop_ast = list->child[i]; //这个节点类型为:ZEND_AST_PROP_ELEM zend_ast *name_ast = prop_ast->child[0]; //属性名节点 From eb2f96fc2aa72515a3d1fb4f87e387b650775ac3 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 7 Aug 2017 17:26:13 +0800 Subject: [PATCH 67/82] fix error --- 7/func.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/7/func.md b/7/func.md index 74ae72a..4c4a47c 100644 --- a/7/func.md +++ b/7/func.md @@ -376,8 +376,25 @@ my_func_1(array($object, 'method')); #### 7.6.2.11 其它标识符 除了上面介绍的这些解析符号以外,还有几个有特殊用法的标识符:"|"、"+"、"*",它们并不是用来表示某种数据类型的。 -* __|:__ 表示此后的参数为可选参数,可以不传,比如解析规则为:"al|b",则可以传2个或3个参数,如果是:"alb",则必须传3个,否则将报错; -* __+/*:__ 用于可变参数,注意这里与PHP函数...的用法不太一样,PHP中可以把函数最后一个参数前加...,表示调用时可以传多个参数,这些参数都会插入...参数的数组中,"*/+"也表示这个参数是可变的,但内核中只能接收一个值,即使传了多个后面那些也解析不到,"*"、"+"的区别在于"*"表示可以不传可变参数,而"+"表示可变参数至少有一个。 +* __|:__ 表示此后的参数为可选参数,可以不传,比如解析规则为:"al|b",则可以传2个或3个参数,如果是:"alb",则必须传3个,否则将报错 +* __+、* :__ 用于可变参数,`+、*`的区别在于 * 表示可以不传可变参数,而 + 表示可变参数至少有一个。可变参数将被解析到zval数组,可以通过一个整形参数,用于获取具体的数量,例如: +```c +PHP_FUNCTION(my_func_1) +{ + zval *args; + int argc; + + if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + return; + } + //... +} +``` +argc获取的就是可变参数的数量,args为参数数组,指向第一个参数,可以通过args[i]获取其它参数,比如这样传参: +```php +my_func_1(array(), 1, false, "ddd"); +``` +那么传入的4个参数就可以在解析后通过args[0]、args[1]、args[2]、args[3]获取。 ### 7.6.3 引用传参 上一节介绍了如何在内部函数中解析参数,这里还有一种情况没有讲到,那就是引用传参: From b7dbd3deebd3fff05fde871ec0e4331361dfe89e Mon Sep 17 00:00:00 2001 From: jianzhiyao <739319867@qq.com> Date: Tue, 29 Aug 2017 16:58:59 +0800 Subject: [PATCH 68/82] =?UTF-8?q?=E6=8B=BC=E5=86=99=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E9=94=99=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 7/implement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/implement.md b/7/implement.md index bebf3d4..7c84d1c 100644 --- a/7/implement.md +++ b/7/implement.md @@ -1,5 +1,5 @@ ## 7.2 扩展的实现原理 -PHP中扩展通过`zend_module_entry`这个结构来表示,此结构定义了扩展的全部信息:扩展名、扩展版本、扩展提供的函数列表以及PHP四个执行阶段的hook函数等,每一个扩展都需要定义一个此结构的变量,而且这个变量的名称格式必须是:`{mudule_name}_module_entry`,内核正是通过这个结构获取到扩展提供的功能的。 +PHP中扩展通过`zend_module_entry`这个结构来表示,此结构定义了扩展的全部信息:扩展名、扩展版本、扩展提供的函数列表以及PHP四个执行阶段的hook函数等,每一个扩展都需要定义一个此结构的变量,而且这个变量的名称格式必须是:`{module_name}_module_entry`,内核正是通过这个结构获取到扩展提供的功能的。 扩展可以在编译PHP时一起编译(静态编译),也可以单独编译为动态库,动态库需要加入到php.ini配置中去,然后在`php_module_startup()`阶段把这些动态库加载到PHP中: ```c From 386016c4e23bd83003039bef2d5e2855b9d2281b Mon Sep 17 00:00:00 2001 From: qinpeng Date: Mon, 13 Nov 2017 19:49:28 +0800 Subject: [PATCH 69/82] update --- README.md | 5 ++++- img/book.jpg | Bin 0 -> 75288 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 img/book.jpg diff --git a/README.md b/README.md index dbec699..5dddd92 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,10 @@ ## 反馈 [交流&吐槽](https://github.com/pangudashu/php7-internal/issues/3) [错误反馈](https://github.com/pangudashu/php7-internal/issues/2) -![](img/my_wx2.png) +## 纸质版 +

    + +
    ## 目录: * 第1章 PHP基本架构 diff --git a/img/book.jpg b/img/book.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89fc991f3db944b2f9540e7f491fe28831e57e7a GIT binary patch literal 75288 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ⓈubSvbsX|0)3%Vj`+dSGujJ5T^R<<1qh(K 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 Date: Mon, 13 Nov 2017 19:52:12 +0800 Subject: [PATCH 70/82] update --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5dddd92..57dfd71 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ ## 纸质版
    + + (coming soon)
    ## 目录: From d5ec26aab7785a00065893226fb4bb36af26878f Mon Sep 17 00:00:00 2001 From: glowdan Date: Wed, 15 Nov 2017 21:12:30 +0800 Subject: [PATCH 71/82] add gitbook support --- SUMMARY.md | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ book.json | 7 ++++ 2 files changed, 115 insertions(+) create mode 100644 SUMMARY.md create mode 100644 book.json diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000..d26efd0 --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,108 @@ +# PHP7-internal + +## 目录 + +* 第1章 PHP基本架构 + * 1.1 PHP简介 + * 1.2 PHP7的改进 + * [1.3 FPM](1/fpm.md) + * [1.3.1 概述](1/fpm.md) + * [1.3.2 基本实现](1/fpm.md) + * [1.3.3 FPM的初始化](1/fpm.md) + * [1.3.4 请求处理](1/fpm.md) + * [1.3.5 进程管理](1/fpm.md) + * [1.4 PHP执行的几个阶段](1/base_process.md) +* 第2章 变量 + * [2.1 变量的内部实现](2/zval.md) + * [2.2 数组](2/zend_ht.md) + * [2.3 静态变量](2/static_var.md) + * [2.4 全局变量](2/global_var.md) + * [2.5 常量](2/zend_constant.md) +* 第3章 Zend虚拟机 + * [3.1 PHP代码的编译](3/zend_compile.md) + * [3.1.1 词法解析、语法解析](3/zend_compile_parse.md) + * [3.1.2 抽象语法树编译流程](3/zend_compile_opcode.md) + * [3.2 函数实现](3/function_implement.md) + * [3.2.1 内部函数](3/function_implement.md) + * 3.2.2 用户函数的实现 + * [3.3 Zend引擎执行流程](3/zend_executor.md) + * 3.3.1 基本结构 + * 3.3.2 执行流程 + * 3.3.3 函数的执行流程 + * [3.3.4 全局execute_data和opline](3/zend_global_register.md) + * 3.4 面向对象实现 + * [3.4.1 类](3/zend_class.md) + * [3.4.2 对象](3/zend_object.md) + * [3.4.3 继承](3/zend_extends.md) + * [3.4.4 动态属性](3/zend_prop.md) + * [3.4.5 魔术方法](3/zend_magic_method.md) + * [3.4.6 类的自动加载](3/zend_autoload.md) + * [3.5 运行时缓存](3/zend_runtime_cache.md) + * 3.6 Opcache + * 3.6.1 opcode缓存 + * 3.6.2 opcode优化 + * 3.6.3 JIT +* 第4章 PHP基础语法实现 + * [4.1 类型转换](4/type.md) + * [4.2 选择结构](4/if.md) + * [4.3 循环结构](4/loop.md) + * [4.4 中断及跳转](4/break.md) + * [4.5 include/require](4/include.md) + * [4.6 异常处理](4/exception.md) +* 第5章 内存管理 + * [5.1 Zend内存池](5/zend_alloc.md) + * [5.2 垃圾回收](5/gc.md) +* 第6章 线程安全 + * [6.1 什么是线程安全](6/ts.md) + * [6.2 线程安全资源管理器](6/ts.md) +* 第7章 扩展开发 + * [7.1 概述](7/intro.md) + * [7.2 扩展的实现原理](7/implement.md) + * [7.3 扩展的构成及编译](7/extension_intro.md) + * [7.3.1 扩展的构成](7/extension_intro.md) + * [7.3.2 编译工具](7/extension_intro.md) + * [7.3.3 编写扩展的基本步骤](7/extension_intro.md) + * [7.3.4 config.m4](7/extension_intro.md) + * [7.4 钩子函数](7/hook.md) + * [7.5 运行时配置](7/conf.md) + * [7.5.1 全局变量](7/conf.md) + * [7.5.2 ini配置](7/conf.md) + * [7.6 函数](7/func.md) + * 7.6.1 内部函数注册 + * 7.6.2 函数参数解析 + * 7.6.3 引用传参 + * 7.6.4 函数返回值 + * 7.6.5 函数调用 + * [7.7 zval的操作](7/var.md) + * [7.7.1 新生成各类型zval](7/var.md) + * [7.7.2 获取zval的值及类型](7/var.md) + * [7.7.3 类型转换](7/var.md) + * [7.7.4 引用计数](7/var.md) + * [7.7.5 字符串操作](7/var.md) + * [7.7.6 数组操作](7/var.md) + * [7.8 常量](7/constant.md) + * 7.9 面向对象 + * 7.9.1 内部类注册 + * 7.9.2 定义成员属性 + * 7.9.3 定义成员方法 + * 7.9.4 定义常量 + * 7.9.5 类的实例化 + * 7.10 资源类型 + * 7.11 经典扩展解析 + * 7.8.1 Yaf + * 7.8.2 Redis +* 第8章 命名空间 + * [8.1 概述](8/namespace.md) + * [8.2 命名空间的定义](8/namespace.md) + * [8.2.1 定义语法](8/namespace.md) + * [8.2.2 内部实现](8/namespace.md) + * [8.3 命名空间的使用](8/namespace.md) + * [8.3.1 基本用法](8/namespace.md) + * [8.3.2 use导入](8/namespace.md) + * [8.3.3 动态用法](8/namespace.md) + +---- + +## 附录 + * [附录1:break/continue按标签中断语法实现](try/break.md) + * 附录2:defer推迟函数调用语法的实现 \ No newline at end of file diff --git a/book.json b/book.json new file mode 100644 index 0000000..d167834 --- /dev/null +++ b/book.json @@ -0,0 +1,7 @@ +{ + "title" : "PHP7内核剖析", + "author" : "pangudashu", + "description" : "PHP7", + "language" : "zh-hans", + "gitbook" : ">=3.0.0" +} \ No newline at end of file From 3c0ba793950105f929a2d9f597a2ccc8137d2df8 Mon Sep 17 00:00:00 2001 From: glowdan Date: Wed, 15 Nov 2017 21:17:24 +0800 Subject: [PATCH 72/82] edit description --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index d167834..26f051e 100644 --- a/book.json +++ b/book.json @@ -1,7 +1,7 @@ { "title" : "PHP7内核剖析", "author" : "pangudashu", - "description" : "PHP7", + "description" : "PHP7内核剖析,基于PHP版本:php-7.0.12", "language" : "zh-hans", "gitbook" : ">=3.0.0" } \ No newline at end of file From bf67ee7d1cc994f2282e06ae1dafbd088ed4f9cc Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 1 Dec 2017 10:13:27 +0800 Subject: [PATCH 73/82] update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 57dfd71..7458bfa 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ ## 纸质版
    - - (coming soon) + [京东](https://item.jd.com/12267210.html) + [当当](http://product.dangdang.com/25185400.html)
    ## 目录: From f89a9abc25b94fd0d7aa950dcc6a47a49f701a4b Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 1 Dec 2017 10:16:25 +0800 Subject: [PATCH 74/82] add url --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7458bfa..6ae92fe 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,9 @@ ## 纸质版
    + [京东](https://item.jd.com/12267210.html) + [当当](http://product.dangdang.com/25185400.html)
    From 254c7b87aa865b50535e9d09354fcd014a19c70d Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 1 Dec 2017 10:18:20 +0800 Subject: [PATCH 75/82] add url --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6ae92fe..dacb5fc 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,8 @@
    - [京东](https://item.jd.com/12267210.html) - - [当当](http://product.dangdang.com/25185400.html) + [京东] + [当当]
    ## 目录: From 9e273d42af08960642989a32bc605d3122cde55b Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 1 Dec 2017 10:18:55 +0800 Subject: [PATCH 76/82] add url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dacb5fc..90ebdf2 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,10 @@ ## 纸质版
    +
    [京东] [当当] - ## 目录: * 第1章 PHP基本架构 From 6c469f14f222c0a922aa194b56c972747697f331 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Fri, 1 Dec 2017 10:19:55 +0800 Subject: [PATCH 77/82] add url --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 90ebdf2..95dcbb4 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@
    - - [京东] - [当当] + +[京东](https://item.jd.com/12267210.html) +[当当](http://product.dangdang.com/25185400.html) ## 目录: * 第1章 PHP基本架构 From 6c34d2e2036c4d06be089283e3e6b4b3e7cc5b1d Mon Sep 17 00:00:00 2001 From: xmc Date: Mon, 19 Mar 2018 17:01:54 +0800 Subject: [PATCH 78/82] =?UTF-8?q?fix=20=E8=AF=8D=E8=AF=AD=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2/zval.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/zval.md b/2/zval.md index 6f96b7e..dd82bc0 100644 --- a/2/zval.md +++ b/2/zval.md @@ -278,7 +278,7 @@ $b[] = 3; ![zval_sep](../img/zval_sep.png) -不是所有类型都可以copy的,比如对象、资源,实时上只有string、array两种支持,与引用计数相同,也是通过`zval.u1.type_flag`标识value是否可复制的: +不是所有类型都可以copy的,比如对象、资源,事实上只有string、array两种支持,与引用计数相同,也是通过`zval.u1.type_flag`标识value是否可复制的: ```c #define IS_TYPE_COPYABLE (1<<4) ``` From 66505547ac5a3ff13c0399d62e64dd51750682fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mc=C2=B2?= Date: Mon, 26 Mar 2018 17:53:21 +0800 Subject: [PATCH 79/82] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 严格的将 => 严格的说 --- 2/static_var.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2/static_var.md b/2/static_var.md index d382cb4..c134cf2 100644 --- a/2/static_var.md +++ b/2/static_var.md @@ -87,7 +87,7 @@ if (by_ref) { * __ZEND_FETCH_W:__ 这条opcode对应的操作是创建一个IS_INDIRECT类型的zval,指向static_variables中对应静态变量的zval * __ZEND_ASSIGN_REF:__ 它的操作是引用赋值,即将一个引用赋值给CV变量 -通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说`static $count = 4;`包含了两个操作,严格的将`$count`并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:`$count = & static_variables["count"];`。上面例子$count与static_variables["count"]间的关系如图所示。 +通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说`static $count = 4;`包含了两个操作,严格的说`$count`并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:`$count = & static_variables["count"];`。上面例子$count与static_variables["count"]间的关系如图所示。 ![](../img/zend_static_ref.png) From 217ea91e703df8cbfacb872ad7a6259e07d4aa89 Mon Sep 17 00:00:00 2001 From: smalleyes Date: Wed, 25 Apr 2018 18:04:16 +0800 Subject: [PATCH 80/82] =?UTF-8?q?=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3/zend_class.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3/zend_class.md b/3/zend_class.md index f67783b..62eea77 100644 --- a/3/zend_class.md +++ b/3/zend_class.md @@ -1,7 +1,7 @@ ### 3.4.1 类 类是现实世界或思维世界中的实体在计算机中的反映,它将某些具有关联关系的数据以及这些数据上的操作封装在一起。在面向对象中类是对象的抽象,对象是类的具体实例。 -在PHP中类编译阶段的产物,而对象是运行时产生的,它们归属于不同阶段。 +在PHP中类是编译阶段的产物,而对象是运行时产生的,它们归属于不同阶段。 PHP中我们这样定义一个类: ```php From 124d6bc9bbf5abc5a3671bfc005b46bcec099252 Mon Sep 17 00:00:00 2001 From: qinpeng Date: Tue, 10 Jul 2018 17:34:12 +0800 Subject: [PATCH 81/82] update doc --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 95dcbb4..566fac0 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,10 @@ * [8.3.2 use导入](8/namespace.md) * [8.3.3 动态用法](8/namespace.md) -## 附录 - * [附录1:break/continue按标签中断语法实现](try/break.md) - * 附录2:defer推迟函数调用语法的实现 +## 实现PHP新特性 + * [1、break/continue按标签中断语法实现](try/break.md) + * 2、defer语法 + * 3、协程 + * 3.1 协程的原理 + * 3.2 上下文切换 From 860410be29627212b5dbd485664ace2d4e6188b3 Mon Sep 17 00:00:00 2001 From: Ching-Ping Sun <252880+tomjpsun@users.noreply.github.com> Date: Fri, 18 Jan 2019 17:29:42 +0800 Subject: [PATCH 82/82] fix example typo --- 7/extension_intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7/extension_intro.md b/7/extension_intro.md index f6aafc8..020a179 100644 --- a/7/extension_intro.md +++ b/7/extension_intro.md @@ -270,7 +270,7 @@ __(5)PHP_ADD_INCLUDE(path):__ 添加include路径,即:`gcc -Iinclude_dir`, __(6)PHP_CHECK_LIBRARY(library, function [, action-found [, action-not-found [, extra-libs]]]):__ 检查依赖的库中是否存在需要的function,action-found为存在时执行的动作,action-not-found为不存在时执行的动作,比如扩展里使用到线程pthread,检查pthread_create(),如果没找到则终止./configure执行: ```sh -PHP_ADD_INCLUDE(pthread, pthread_create, [], [ +PHP_CHECK_LIBRARY(pthread, pthread_create, [], [ AC_MSG_ERROR([not find pthread_create() in lib pthread]) ]) ```