我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

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

苏南大叔:zephir 代码转换,php 代码如何自动转化为 zephir 代码 ? - zephir-auto-convert
zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?(图5-1)

本文测试环境为:
mac10.14.1 (18B75)php7.2zephir0.11.8Zephir-Parser1.2.0php-to-zephir0.2.1

神器php-to-zephir简介

苏南大叔推荐的这款自动转化神器php-to-zephirgit主页地址是:

苏南大叔:zephir 代码转换,php 代码如何自动转化为 zephir 代码 ? - zephir-auto-convert-version
zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?(图5-2)

截至到发稿,这款神器的最新版本是0.2.1,已经三年左右没有更新了。

需要明确的是:

  • 并不是所有的php都能转化,符合套路的才能转换。
  • 转换的结果,也不一定是肯定能用的,还是必须去调试代码的。

所以,这个php-to-zephir工具仅仅是个辅助工具,这点是必须明确的。所以,对转化的结果和过程,请不要报任何不切实际的幻想。如果直接转完就能使用的话,就没有必要用程序猿人工了。哈哈。

安装php-to-zephir

安装过程并不是从git上拉取代码,再build。而是通过composer进行安装操作。

第一步:需要先初始化一个composer项目。

composer init

苏南大叔:zephir 代码转换,php 代码如何自动转化为 zephir 代码 ? - composer-init
zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?(图5-3)

第二步:修改为国内composer源(可选)
如果您的网络环境良好的话,就不用这一步了。

{
    //已有的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

苏南大叔:zephir 代码转换,php 代码如何自动转化为 zephir 代码 ? - composer-require
zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?(图5-4)

查看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代码都必须放在一个namespaceclass名下,也就是说,并不是任何代码都可以转化的。必须符合格式才可以做转换。下面就是套路格式:

namespace test;
class test {
   function xxx(){
     //无法转的代码放在一个class的function里面
   }
}

把要转化的代码,放在项目根目录下面的myDirToConvert文件夹(名字随意,记住即可)。

代码转化

下面的代码就是重点了,命令似乎有些长,注意替换里面的myDirToConvert字样,替换为你的php代码所在的目录。

vendor/bin/php-to-zephir phpToZephir:convert myDirToConvert 

注意myDirToConvert就是要转化的php代码的存放目录,注意做相关替换。

不出意外的话,就可以在项目根目录下面的converted文件夹中看到转化的结果了,把转好的代码复制到zephir项目中,就可以进行进一步调试了。

苏南大叔:zephir 代码转换,php 代码如何自动转化为 zephir 代码 ? - php-to-zephir-do
zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?(图5-5)

总结

学习zephir的道路,又前进了一步。加油~ 少年~
更多zephir的经验文章,请点击苏南大叔的zephir经验文字列表吧~

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    zephir