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

书接上文,苏南大叔在本文中,要开始第一个zephirhelloworld范例。范例的demo呢,其实是从官方文档照抄的,稍稍改了改名字。作为zephir第一个有益尝试,本文是足够的了。如果您还没有搞清楚zephir的编译及使用,那么本篇文章就是你所需要的。在阅读本文之前,请确定你安装好了zephirzephir-parser。具体的安装教程,请参见文末链接。

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - zephir-helloworld
zephir 如何编写第一个 helloworld 入门范例?(图8-1)

下面开始正文,和苏南大叔一起开始zephirhelloworld之旅吧。本文范例的测试环境是:mac + php7.2 + zephir0.10.10

初始化zephir工程

在你的目录下面,使用下面的代码可以初始化一个新的项目。注意,一定要填写好项目名称。否则,会报错各种和namespace相关的错误。

zephir init <项目名称>

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 024
zephir 如何编写第一个 helloworld 入门范例?(图8-2)

正常情况下,就会初始化好项目目录了,在这个截图中,苏南大叔的项目名字叫hello。然后在hello目录,来编写下代码吧。

新建第一个.zep源码

hello/hello目录,新建一个.zep文件吧。内容类似如下,请一定要替换代码中的Utils字样为你自己的实际的命名空间(项目名称/目录名称)字样。

namespace Utils;
class Greeting
{
    public static function say()
    {
        echo "hello world!";
    }
}

从语法上看,这个.zep文件几乎和php没有差异的。所以,这里,php程序员来写这个so扩展是完全没有压力的。

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 025
zephir 如何编写第一个 helloworld 入门范例?(图8-3)

对应关系大概是这样的:项目名称为hello,项目文件夹名字就叫做hello,那么代码所在的目录名字就是hello/hello/。第一个zep文件,叫做greeting.zep,所以这个文件里面的namespace叫做Helloclass名字叫做Greeting

注意文件内容的开头没有任何类似<?phptag,光秃秃什么都没有。

zephir项目构建

这个构建命令,需要注意执行的位置,要在项目的根目录下面执行,否则会有各种各样的报错的。而且请确认你确实安装好了zephir-parser,否则这里会报错的。

zephir build

正常情况下来说,这里就会得到我们的第一个zephir出品的php扩展了。苏南大叔这边得到了一个hello.so文件。

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 026
zephir 如何编写第一个 helloworld 入门范例?(图8-4)

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 030
zephir 如何编写第一个 helloworld 入门范例?(图8-5)

修改php.ini生效

修改php.ini,增加下面类似的语句,然后记得重启php生效。这个很简单好理解。如果,您不知道如何查找php.ini的位置,那么可以参见下面这篇文章。

extension = <yourname>.so;

当然,您编译的也可能是dll文件,所以,请根据实际情况,调整上述代码。

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 031
zephir 如何编写第一个 helloworld 入门范例?(图8-6)

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 032
zephir 如何编写第一个 helloworld 入门范例?(图8-7)

注意需要重启php才能生效,如果您的测试环境是mac,那么您也许需要的语句是:

brew services restart php

在php代码中使用zephir

php中,使用上述的.zep代码的话,也非常简单,你就可以理解为,已经全局加载了相关php代码就可以了。简单好理解,也就是不用主动require相关代码文件了。

Hello\Greetting::say();

测试的效果,非常的不错。大家看截图。

苏南大叔:zephir 如何编写第一个 helloworld 入门范例? - 033
zephir 如何编写第一个 helloworld 入门范例?(图8-8)

相关链接

结论

zephir的语法和php的语法几乎是一致的。所以,大家应该不会有什么陌生感。多写写就ok了。当然,GitHub上面,还有个批量转化phpzep的项目,大家可以偷个懒,转化一下你写好的php,看看两者有什么区别。

项目地址是:

newsn.net:这里是【评论】可见内容

暂时,苏南大叔的zephir内容,就这么多了。如果将来再写zephir的内容,也许是很久之后了。如果您关注相关经验文章,可以多刷刷下面的这个链接地址。

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

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

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

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