这里我们使用Docker来安装我们的开发环境。docker的安装参考官方文档https://docs.docker.com/install/使用Docker安装Zephir编译器首先是根据我们的目标PHP版本拉取对应的Zephir编译器镜像,这里是我们的PHP版本是7.0,所以使用这个命令:dockerpullphalconphp/zephir:7.0然后创建/usr/local/bin/zephir文件,文件内容如下:#!/usr/bin/envbashdocker_bin="$(whichdocker2>/dev/null)"#5.4,5.5,5.6,7,7.0,latestPHP_VERSION=7.0${docker_bin}run-it--rm\--privileged=true\-eZEND_DONT_UNLOAD_MODULES=1\-v$(pwd):/zephir\phalconphp/zephir:${PHP_VERSION}"$@"ret=$?if[${ret}-ne0];然后errors="$(pwd)/compile-errors.log"如果[-e${errors}];然后cat${errors}fifi为这个文件添加可执行权限:sudochmoda+x/usr/local/bin/zephir这样我们就安装好了Zephir编译器:$zephirversion0.9.7创建一个PHP二进制库项目这里我们创建一个项目名为utils,使用Zephir脚手架初始化项目代码:zephirinitutils写一个zep文件:$catutils/utils/greeting.zepnamespaceUtils;classGreeting{publicstaticfunctionsay(){echo"helloworld!\n";}}编译这个项目$cdutils$lsconfig.jsonextutils$zephirbuild这样我们就可以编译了翻译的so库文件:ext/modules/utils.so测试使用这个so库文件通过php-i|获取我们PHP扩展so文件的安装目录|grepextension_dir:/usr/lib/php/20151012/,so两条命令在cli方式下完成PHP的扩展安装,fpm方式类似,(通过php-i|grep'scanthisdir获取ini配置文件目录对于其他.ini文件'):sudo\cpext/modules/utils.so/usr/lib/php/20151012/echo"extension=utils.so"|sudotee/etc/php/7.0/cli/conf.d/30-zephir-dev.ini最后我们写一个PHP文件来测试这个so库是否安装成功:$cat>test.php<<_EOF
