本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规。大家都是程序员,不要闹得不开心。
书接上文,苏南大叔在本文中,要开始第一个zephir的helloworld范例。范例的demo呢,其实是从官方文档照抄的,稍稍改了改名字。作为zephir第一个有益尝试,本文是足够的了。如果您还没有搞清楚zephir的编译及使用,那么本篇文章就是你所需要的。在阅读本文之前,请确定你安装好了zephir及zephir-parser。具体的安装教程,请参见文末链接。
下面开始正文,和苏南大叔一起开始zephir的helloworld之旅吧。本文范例的测试环境是:mac + php7.2 + zephir0.10.10。
初始化zephir工程
在你的目录下面,使用下面的代码可以初始化一个新的项目。注意,一定要填写好项目名称。否则,会报错各种和namespace相关的错误。zephir init
zephir 如何编写第一个 helloworld 入门范例?(图7-1)
正常情况下,就会初始化好项目目录了,在这个截图中,苏南大叔的项目名字叫hello。然后在hello目录,来编写下代码吧。
新建第一个.zep源码
在hello/hello目录,新建一个.zep文件吧。内容类似如下,请一定要替换代码中的Utils字样为你自己的实际的命名空间(项目名称/目录名称)字样。namespace Utils;
class Greeting
{
public static function say()
{
echo "hello world!";
}
}
从语法上看,这个.zep文件几乎和php没有差异的。所以,这里,php程序员来写这个so扩展是完全没有压力的。
zephir 如何编写第一个 helloworld 入门范例?(图7-2)
对应关系大概是这样的:项目名称为hello,项目文件夹名字就叫做hello,那么代码所在的目录名字就是hello/hello/。第一个zep文件,叫做greeting.zep,所以这个文件里面的namespace叫做Hello,class名字叫做Greeting。
注意文件内容的开头没有任何类似<?php的tag ,光秃秃什么都没有。
zephir项目构建
这个构建命令,需要注意执行的位置,要在项目的根目录下面执行,否则会有各种各样的报错的。而且请确认你确实安装好了zephir-parser,否则这里会报错的。zephir build
正常情况下来说,这里就会得到我们的第一个zephir出品的php扩展了。苏南大叔这边得到了一个hello.so文件。
zephir 如何编写第一个 helloworld 入门范例?(图7-3)
zephir 如何编写第一个 helloworld 入门范例?(图7-4)
修改php.ini生效
修改php.ini,增加下面类似的语句,然后记得重启php生效。这个很简单好理解。如果,您不知道如何查找php.ini的位置,那么可以参见下面这篇文章。extension = .so;
当然,您编译的也可能是dll文件,所以,请根据实际情况,调整上述代码。
zephir 如何编写第一个 helloworld 入门范例?(图7-5)
zephir 如何编写第一个 helloworld 入门范例?(图7-6)
注意需要重启php才能生效,如果您的测试环境是mac,那么您也许需要的语句是:brew services restart php
在php代码中使用zephir
在php中,使用上述的.zep代码的话,也非常简单,你就可以理解为,已经全局加载了相关php代码就可以了。简单好理解,也就是不用主动require相关代码文件了。Hello\Greetting::say();
测试的效果,非常的不错。大家看截图。
zephir 如何编写第一个 helloworld 入门范例?(图7-7)
相关链接
结论
zephir的语法和php的语法几乎是一致的。所以,大家应该不会有什么陌生感。多写写就ok了。当然,GitHub上面,还有个批量转化php为zep的项目,大家可以偷个懒,转化一下你写好的php,看看两者有什么区别。
项目地址是:
newsn.net:这里是【评论】可见内容
暂时,苏南大叔的zephir内容,就这么多了。如果将来再写zephir的内容,也许是很久之后了。如果您关注相关经验文章,可以多刷刷下面的这个链接地址。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。