Zephir語(yǔ)言的官方地址:https://zephir-lang.com/
關(guān)于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是一個(gè)開源的高級(jí)語(yǔ)言(區(qū)別于匯編等機(jī)器語(yǔ)言),它的設(shè)計(jì)是為了減輕PHP原生擴(kuò)展的創(chuàng)建難度和可維護(hù)性,另外還帶來了強(qiáng)類型與內(nèi)存安全的支持。
Zephir是一門定位于大多數(shù)想通過編寫和編譯能夠被PHP執(zhí)行的代碼的PHPer需求的語(yǔ)言。它是一種動(dòng)態(tài)和靜態(tài)類型結(jié)合的語(yǔ)言,對(duì)于PHP來說,它的一些功能可能會(huì)感覺時(shí)曾相識(shí)。
安裝Zephir
為了構(gòu)建一個(gè)PHP擴(kuò)展和使用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可移植環(huán)境下進(jìn)行的安裝過程。
第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步,查看編譯選項(xiàng)
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步,開始默認(rèn)安裝
sudo ./configure && sudo make -j2 && sudo make install -j2
sudo cp php.ini-development /usr/local/lib/php.ini
第6步,安裝composer,選擇手動(dòng)安裝的方式:
wget https://getcomposer.org/download/1.4.1/composer.phar
sudo mv composer.phar /usr/bin/composer
sudo chmod a+x /usr/bin/composer
測(cè)試composer安裝結(jié)果:
第7步,下載Zephir的C源代碼倉(cāng)庫(kù),由于GitHub的git clone速度實(shí)在不行,猿哥選擇,下載zip文件:
下載完畢之后,解壓并進(jìn)入到Zephir目錄。
第8步,執(zhí)行如下安裝與測(cè)試命令:
./install -c && zephir help
結(jié)果展示:
第9步,快速開始第一個(gè)PHP擴(kuò)展'hello,world!',初始化一個(gè)擴(kuò)展程序骨架如下:
cd ~ && mkdir PHP_Ext_Dev && cd PHP_Ext_Dev
zephir init utils && tree
第10步,在~/PHP_Ext_Dev/utils/utils目錄下編寫第一個(gè)zep類Greeting.zep,代碼如下:
namespace Utils;
class Greeting
{
public statis function say()
{
echo 'Hello,world!';
}
}
第11步,構(gòu)建zep類,并進(jìn)行接下來的擴(kuò)展安裝流程,如下:
zephir build
sudo vim /usr/local/lib/php.ini (在文件最后面增加一行:extension=uitls.so)
php -m (測(cè)試模塊的加載情況):
第12步,進(jìn)行最后的測(cè)試工作,進(jìn)行如下操作:
cd ~
vim test.php
加入如下內(nèi)容:
<>
Utils\Greeting::say();
echo '\n';
執(zhí)行:
php test.php
結(jié)果如下:
得到我們希望的結(jié)果。
聯(lián)系客服