PHP Internal

PHP扩展开发之细枝末节

ZTS(Zend Thread Safety)
当要使用Zend线程安全(Zend Thread Safety)时,需要在configure时,使用–enable-maintainer-zts参数,这种情况下,就会定义这个名为ZTS的宏。同时在处理PHP内置数据时,需要在函数调用时的最后一个参数后使用TSRMLS_XX标记。
TSRMLS_XX一般有4种形式,关于何时该使用哪一个,看下面这里

TSRMLS_D  in declarations as only param
TSRMLS_C  in uses (calls) as only param
static void my_helper(TSRMLS_D);
    static void some_function(TSRMLS_D) {
    my_helper(TSRMLS_C);
}
TSRMLS_DC in declarations after last param w/o comma 
TSRMLS_CC in uses 

PHP扩展开发相关内核概念

PHP扩展开发说实话难度不大,但是却要扩展开发者拥有全面的基础知识以及要熟悉PHP内核的相关概念,这就要求我们对一些相关概念做到了如指掌。
本篇文章会针对一些新手难以理解的大概念进行解释,并大多画了流程图来更加直观的加深你的理解,以及你可能存在的疑问,比如第一个章节PHP生命周期和我们开发扩展有什么关系呢?不要着急,下面会回答你的问题。
如果你对PHP扩展开发还一点都不了解的话,也不要心急,可以看下我的这篇文章PHP扩展开发及入门解惑来个快速上手。

PHP扩展开发及入门解惑

687474703a2f2f692e696d6775722e636f6d2f476972494f57732e706e67
说在最前面
作为PHP程序猿,如果不懂得PHP内核、不懂得PHP扩展开发,仿佛是一件很”羞耻”的事情,嗯,的确很”羞耻”!虽说已经接触PHP已经有三年多的时间了,可是一直都没有机会或者说从没自己主动的去学习过,所以觉得更加”羞耻”了。在这种情况下,如果你被面试官发问说你接触PHP很久的时间有没有学习过PHP底层的知识的时候,你懂的,会更加更加”羞耻”。So,别废话,是该捯饬捯饬PHP扩展了。