zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?
在zephir的初步编写尝试后,大家就会发现,其实很多事情都和想象的不一样。在php中,很顺理成章的语句,在zephir里面都是不能顺利解析的。所以,你可能需要一个php代码,自动转换成zephir代码的工具。苏南大叔在本文中,推荐一款自动代码转换的神器,叫做php-to-zephir。有了这款代码转换神器后,编写zephir的过程就会简单很多了。

本文测试环境为:
mac10.14.1 (18B75),php7.2,zephir0.11.8,Zephir-Parser1.2.0,php-to-zephir0.2.1。
神器php-to-zephir简介
苏南大叔推荐的这款自动转化神器php-to-zephir,git主页地址是:
- https://github.com/fezfez/php-to-zephir

截至到发稿,这款神器的最新版本是0.2.1,已经三年左右没有更新了。
需要明确的是:
- 并不是所有的
php都能转化,符合套路的才能转换。 - 转换的结果,也不一定是肯定能用的,还是必须去调试代码的。
所以,这个php-to-zephir工具仅仅是个辅助工具,这点是必须明确的。所以,对转化的结果和过程,请不要报任何不切实际的幻想。如果直接转完就能使用的话,就没有必要用程序猿人工了。哈哈。
安装php-to-zephir
安装过程并不是从git上拉取代码,再build。而是通过composer进行安装操作。
第一步:需要先初始化一个composer项目。
composer init

第二步:修改为国内composer源(可选)
如果您的网络环境良好的话,就不用这一步了。
- https://newsn.net/say/composer-howto.html
{
//已有的json内容
"config": {
"secure-http": false,
"preferred-install": "dist",
"sort-packages": true
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
第三步:安装php-to-zephir
composer require fezfez/php-to-zephir

查看php-to-zephir版本号
可以通过下面的命令,查看本地composer安装的php-to-zephir版本:
composer info | grep php-to-zephir
返回值类似如下:
fezfez/php-to-zephir 0.2.1 Transform php code to zephir
php代码转换准备
要转换的代码,需要先事先放置在一个文件夹内,并且,所有的php代码都必须放在一个namespace和class名下,也就是说,并不是任何代码都可以转化的。必须符合格式才可以做转换。下面就是套路格式:
namespace test;
class test {
function xxx(){
//无法转的代码放在一个class的function里面
}
}
把要转化的代码,放在项目根目录下面的myDirToConvert文件夹(名字随意,记住即可)。
代码转化
下面的代码就是重点了,命令似乎有些长,注意替换里面的myDirToConvert字样,替换为你的php代码所在的目录。
vendor/bin/php-to-zephir phpToZephir:convert myDirToConvert
注意myDirToConvert就是要转化的php代码的存放目录,注意做相关替换。
不出意外的话,就可以在项目根目录下面的converted文件夹中看到转化的结果了,把转好的代码复制到zephir项目中,就可以进行进一步调试了。

微信扫一扫,打赏作者吧~