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