1.zephir初窥

假设你的系统是linux并且已经安装好了zephir,执行命令如果有输出就说明已经安装了。


$ zephir help



第一步:生成骨架


我们先创建一个用来做练习的目录

mkdir ~/test
ce ~/test

之后我们所有的操作就在~/test目录下了。
首先执行以下命令生成骨架:

$ zephir init utils



这里通过zephir的init指令,创建了一个名为utils的工程,实际上是在test目录下创建了一个utils的目录,在这个目录里自动生成了一些文件或目录:



$ cd utils
$ ls
ext/ utils/ config.json

ext目录实际上保存的是最终用来编译的C源文件,而zephir的作用就是将zephir代码转化为更底层的C语言。

创建一个类,我们假设叫做Greeting类,继续执行命令:

$ vi utils/greeting.zep



输入以下代码:
namespace Utils;

class Greeting
{

    public static function say()
    {
        echo "hello world!";
    }

}



注意这里必须用一个命名空间,虽然目录名是utils小写的,但是命名空间还是驼峰命名吧,类名也是。我们在Greeting类里面出增加了一个静态方法say(),用来输出hello world!
继续执行命令:
wq
$ pwd
/root/test/utils
$ ls
ext/ utils/ config.json
$ zephir build



上面wq用来保存greeting.zep,pwd和ls命令用来提醒读者当前处于的目录。而zephir build命令则是重点,通过该命令,我们直接生成了utils.so文件,我们直接在php.ini中增加一句“extension=utils.so”就可以开启扩展,如果是web环境,必须重启apache或php-fpm才能生效。

我们退回到 ~/test目录,随便创建一个php脚本test.php:

<?php
Utils\Greeting::say(), "\n";



接着我们运行它
$ php -f test.php



可以看到输出"hello world!"

瞧,构建一个php扩展就是这么简单,当然这个例子并不能说明什么,zephir到底有什么优势,请看接下来的文章。



你可能感兴趣的:(1.zephir初窥)