PHP-X是我在年年初创建的一个新项目。这个项目的目标就是让有一定工作经验的PHP程序都能够具备扩展开发的能力。
0x00初衷从01年开始编写swoole,现在算来已经有5个年头了。我发现编写一个PHP扩展这个工作非常艰难。PHP程序员群体中,甚至可以说人中都很难找出一个会编写PHP扩展的人来。PHP官方对扩展开发者非常不友好,源代码中提供的ZendAPI极其难用,API复杂而且凌乱,充斥着各种宏的写法。ZendAPI坑非常多,普通开发者很容易踩到坑里。出现各种莫名其妙的coredump问题。ZendAPI几乎没有任何文档,开发者如果要真正掌握这项技能需要付出大量的学习时间。
于是我今年就冒出一个新的想法,基于我编写swoole扩展超过5年的经验,我试图在ZendAPI和C++之间建立一个包装层,让PHP扩展开发变得简单。有一定C++基础的PHPer都可以轻松得开发一个PHP扩展。
PHP-X这个项目就这样诞生了,开发只用了一个月的时间。它的开发效率非常高,在我公司中一个只工作了3年的PHP程序员,都可以做出一个扩展来。接下来陆续在公司的几个项目中进行了快速验证。在3个的时间里修复了大量崩溃和内存泄漏问题。目前稳定性、性能、健壮性均已达到工业级水准。
0x01起步PHP-X本身基于C++11开发,使用cmake进行编译配置。首先,你需要确定所有依赖项已安装好。包括:
gcc-4.8或更高版本
php-7.0或更高版本,需要php7-dev包
cmake-.8或更高版本
然后安装PHP-X。
gitclone