PHP内核资源管理器的执行

CLI(命令行界面)是PHP的命令行,现在SAPI是默认安装的,我们安装PHP的服务器后,通常会生成一个可执行文件,该文件是 / usr /局部/斌/ PHP,那么我们可以用下面的命令在shell执行PHP脚本:



复制代码代码如下所示:

/ usr /局部/斌/ PHP -f test.php



以CLI SAPI为例解析PHP execution.cli核心部分是PHP的命令行模式。这是默认安装的SAPI。在服务器安装了PHP之后,它生成一个可执行文件,并且可以通过调用PHP命令在shell中执行。

复制代码代码如下所示:

PHP - F xx.php



执行过程:

解析命令行参数;

初始化环境;

编译和执行PHP代码;

清理环境和出口;

在第三个阶段中,如何执行PHP脚本:

通过调用php_execute_script(handle_file)完成第三阶段的函数最终调用zend_execute_scipts(…),这个函数是一个可变参数函数,可以同时执行多个PHP脚本。



在zend_execut_scripts(......)核心的功能调用两个函数(zend_compile_file)(compile_file),(* zend_execute)(zend_op_array);

通过调用由zend_compile_file编译器参数指定的PHP脚本文件,函数返回一个zend_op_array结构指针;



参数传递是zend_execute的zend_compile_file返回值,和操作码是开始。

这两个功能是Zend API函数指针返回值的具体方法,当引擎初始化。

PS.:所以为什么这两个Zend API函数指针

当引擎初始化,zend_execute和zend_compile_file指向默认的方法初始化引擎之后,我们可以编译和执行的重写函数的方向,我们把钩当我们将发动机。例如,VLD点的zend_execute和zend_compile_file的功能已由原来的函数封装,添加操作码信息输出。