這裡閱讀的php版本為PHP-7.1.0 RC3,閱讀代碼的平台為linux
首先是尋找php的入口,php有很多種模式,apache,php-fpm, cli模式,我要入手的話,隻能先從最簡單的cli模型開始。
那麼,我需要先尋找
這個指令是如何執行的。
首先還是尋找main入口,由于我們看的是指令行的php程式。是以,這個入口在sapi/cli/php_cli.c中。
首先是定義一系列的變量
然後是這個
sapi_module_struct *sapi_module = &cli_sapi_module;
這是一個sapi_module_struct結構,這個結構是sapi中最重要的資料結構。它的定義在main/SAPI.h中。
下面是增加了注釋的代碼:
那麼我們看下cli的SAPI的module是什麼樣子的呢?
其中我把裡面原先有的STANDARD_SAPI_MODULE_PROPERTIES宏給解出來展示如下:
有幾個點可以總結:
cli模式是不需要發送header的,是以對應header處理的三個函數
實際上都是空實作。
cookie也是同樣道理
其他的一些定義的函數,等到我們遇到的時候再分析吧。
回到main函數,根據上面的那個結構,我們就了解了
<code>#endif</code><code>本文轉自軒脈刃部落格園部落格,原文連結:http://www.cnblogs.com/yjf512/p/6084963.html,如需轉載請自行聯系原作者</code>