«

zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?

时间:2024-2-21 13:19     作者:韩俊     分类: PHP


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

zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?

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

神器php-to-zephir简介

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

  • https://github.com/fezfez/php-to-zephir

zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?

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

需要明确的是:

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

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

安装php-to-zephir

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

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

composer init

zephir 代码转换,php 代码如何自动转化为 zephir 代码 ?

第二步:修改为国内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

zephir 代码转换,php 代码如何自动转化为 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代码都必须放在一个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 php教程

热门推荐