Zephir语言的官方地址:https://zephir-lang.com/
关于Zephir
Zephir, an open source, high-level language designed to ease the creation and maintainability of extensions for PHP with a focus on type and memory safety.
Zephir is a language that addresses the major needs of a PHP developer trying to write and compile code that can be executed by PHP. It is a dynamically/statically typed, some of its features can be familiar to PHP developers.
Zephir是一个开源的高级语言(区别于汇编等机器语言),它的设计是为了减轻PHP原生扩展的创建难度和可维护性,另外还带来了强类型与内存安全的支持。
Zephir是一门定位于大多数想通过编写和编译能够被PHP执行的代码的PHPer需求的语言。它是一种动态和静态类型结合的语言,对于PHP来说,它的一些功能可能会感觉时曾相识。
安装Zephir
为了构建一个PHP扩展和使用Zephir,必须先满足如下条件:
gcc >= 4.x/clang >= 3.x
re2c 0.13 or later
gnu make 3.81 or later
autoconf 2.31 or later
automake 1.14 or later
libpcre3
php development headers and tools
P.S.本文是猿哥在windows上的vagrant可移植环境下进行的安装过程。
第1步,下载并编译最新的PHP源码包:
wget http://cn2.php.net/get/php-7.1.3.tar.gz/from/this/mirror -O php-7.1.3.tar.gz
第2步,解压 php-7.1.3.tar.gz:
php xzvf php-7.1.3.tar.gz
第3步,查看编译选项
sudo ./configure -h
第4步,安装指定版本的依赖
sudo yum install re2c libxml2-devel git openssl-devel tree
wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
tar xzvf http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
cd automake-1.15
sudo ./configure --with-openssl && sudo make && sudo make install
第5步,开始默认安装
sudo ./configure && sudo make -j2 && sudo make install -j2
sudo cp php.ini-development /usr/local/lib/php.ini
第6步,安装composer,选择手动安装的方式:
wget https://getcomposer.org/download/1.4.1/composer.phar
sudo mv composer.phar /usr/bin/composer
sudo chmod a+x /usr/bin/composer
测试composer安装结果:
第7步,下载Zephir的C源代码仓库,由于GitHub的git clone速度实在不行,猿哥选择,下载zip文件:
下载完毕之后,解压并进入到Zephir目录。
第8步,执行如下安装与测试命令:
./install -c && zephir help
结果展示:
第9步,快速开始第一个PHP扩展"hello,world!",初始化一个扩展程序骨架如下:
cd ~ && mkdir PHP_Ext_Dev && cd PHP_Ext_Dev
zephir init utils && tree
第10步,在~/PHP_Ext_Dev/utils/utils目录下编写第一个zep类Greeting.zep,代码如下:
namespace Utils;
class Greeting
{
public statis function say()
{
echo "Hello,world!";
}
}
第11步,构建zep类,并进行接下来的扩展安装流程,如下:
zephir build
sudo vim /usr/local/lib/php.ini (在文件最后面增加一行:extension=uitls.so)
php -m (测试模块的加载情况):
第12步,进行最后的测试工作,进行如下操作:
cd ~
vim test.php
加入如下内容:
Utils\Greeting::say();
echo "\n";
执行:
php test.php
结果如下:
得到我们希望的结果。
领取专属 10元无门槛券
私享最新 技术干货