成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【PHP 擴(kuò)展開發(fā)】Zephir 簡(jiǎn)介

arashicage / 797人閱讀

摘要:什么是是一種中間語言,以接近的語法來編寫代碼,然后轉(zhuǎn)換編譯成擴(kuò)展,旨在簡(jiǎn)化擴(kuò)展的創(chuàng)建和可維護(hù)性。如果成功,會(huì)自動(dòng)生成文件到目錄你需要編輯填加擴(kuò)展測(cè)試一下就這樣,你也會(huì)擴(kuò)展開發(fā)了附附編譯擴(kuò)展的方法

什么是 Zephir

Zephir 是一種中間語言,以接近 PHP 的語法來編寫代碼,然后轉(zhuǎn)換編譯成 PHP 擴(kuò)展,旨在簡(jiǎn)化 PHP 擴(kuò)展的創(chuàng)建和可維護(hù)性。利用編譯來提高性能和資源消耗,又不需要關(guān)注內(nèi)存管理等復(fù)雜操作。

安裝

要使用 Zephir 開發(fā) PHP 擴(kuò)展 ,需要滿足以下要求 (以 centos7 + php7.2 為例)

編譯環(huán)境

官方示例以 ubuntu ,需要安裝如下擴(kuò)展

sudo apt-get install git gcc make re2c php php-json php-dev libpcre3-dev build-essential

我們用 centos ,yum 安裝

yum install -y git gcc make re2c autoconf automake libtool pcre pcre-devel

yum groupinstall -y "Development Tools"

某些庫可能某些源沒有,可以更換源或者下載源碼安裝

php 擴(kuò)展

Zephir parser >= 1.1.0

wget https://github.com/phalcon/php-zephir-parser/archive/v1.2.0.tar.gz

mv v1.2.0.tar.gz php-zephir-parser-v1.2.0.tar.gz

tar -xvzf php-zephir-parser-v1.2.0.tar.gz

cd php-zephir-parser-1.2.0/

/usr/local/php7/bin/phpize

./configure --with-php-config=/usr/local/php7/bin/php-config

make && make install

gmp (PHP 源碼中包含該擴(kuò)展,默認(rèn)情況下不安裝)

擴(kuò)展安裝方法大同小異,不另說明

以源碼編譯的方式追加安裝這兩擴(kuò)展,并配置ini文件

extension=gmp.so
extension=zephir_parser.so

安裝 Zephir

Zephir 目前有兩個(gè)大版本在維護(hù) 0.10.X和0.11.X。兩個(gè)版本差別比較大,我們選擇0.11.X,下載最新版本,使用 phar 包

cd /usr/local/bin

wget https://github.com/phalcon/zephir/releases/download/0.11.10/zephir.phar

chmod 755 zephir.phar

ln -s /usr/local/bin/zephir.phar zephir

檢查是否安裝成功

zephir help

安裝成裝顯示如下圖

創(chuàng)建擴(kuò)展

初始化一個(gè)應(yīng)用

zephir init first

生成如下兩個(gè)目錄和一個(gè)文件

編寫代碼

注意:在 Zephir 中, 每個(gè)文件都必須包含一個(gè)類 (并且只有一個(gè)類)。 每個(gè)類都必須有一個(gè)命名空間, 并且目錄結(jié)構(gòu)必須與所使用的類和命名空間的名稱相匹配。

使用 phpstorm 作為 IDE,安裝 Zephir 插件。

firstfirsthello.zep

namespace First;

class Hello
{

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

    public static function zephir() {
        echo "Hello Zephir!";
    }

}

編譯

zephir build

第一次執(zhí)行,運(yùn)氣不好的話會(huì)失敗。詳細(xì)日志見 compile-errors.log 文件的內(nèi)容。

如果 build 成功,會(huì)自動(dòng)生成 first.so 文件到 extension 目錄 ,你需要編輯 php.ini 填加擴(kuò)展

測(cè)試一下


就這樣,你也會(huì) PHP 擴(kuò)展開發(fā)了

附1:Available commands:

    init                Initializes a Zephir extension
    builddev            Generates/Builds/Installs a Zephir extension in development mode
    api                 Generates a HTML API based on the classes exposed in the extension
    clean               Cleans any object files created by the extension
    generate            Generates C code from the Zephir code without compiling it
    build               Generates/Builds/Installs a Zephir extension
    stubs               Generates stubs that can be used in a PHP IDE
    help                Displays this help and exit
    fullclean           Cleans any object files created by the extension (including files generated by phpize)
    compile             Compile a Zephir extension
    install             Installs the extension in the extension directory (may require root password)
    version             Shows the Zephir version

附2:Windows 編譯擴(kuò)展的方法
https://blog.csdn.net/abc1035...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30154.html

相關(guān)文章

  • 使用 Zephir 輕松構(gòu)建 PHP 擴(kuò)展

    摘要:簡(jiǎn)介通過擴(kuò)展,我們可以在代碼中使用一些特定的方法大部分的擴(kuò)展都是用寫的。這個(gè)目錄與我們的擴(kuò)展同名。我們先來在擴(kuò)展中創(chuàng)建一個(gè)類,使用此類來渲染。接下來命令行執(zhí)行以下命令來編譯擴(kuò)展第一次運(yùn)行以上命令時(shí),會(huì)初始化一些東西。 showImg(https://segmentfault.com/img/remote/1460000018698586); 簡(jiǎn)介: 通過 PHP 擴(kuò)展, 我們可以在 p...

    gaosboy 評(píng)論0 收藏0
  • PHP 擴(kuò)展開發(fā)Zephir 基礎(chǔ)篇

    摘要:變量作為函數(shù)返回值時(shí),必須聲明為動(dòng)態(tài)類型。動(dòng)態(tài)變量與中的變量基本完全相同支持在使用時(shí)改變類型。比較運(yùn)算符在運(yùn)算時(shí)考慮變量類型,如果是動(dòng)態(tài)變量與一致。與不一致,語句可以沒有,表示忽略所有異常。 上一篇 《Zephir 簡(jiǎn)介》 簡(jiǎn)單介紹了環(huán)境搭建,編寫了一個(gè)的簡(jiǎn)單示例。這一篇繼續(xù)介紹 Zephir 基礎(chǔ)。 基本語法Zephir 中,每個(gè)文件都必須有且只有一個(gè)類,每個(gè)類都必須有一個(gè)命名空間,...

    wawor4827 評(píng)論0 收藏0
  • Zephir入門 —— Hello world篇

    摘要:概述是一個(gè)開源的用于簡(jiǎn)化擴(kuò)展的創(chuàng)建和維護(hù)的語言。它使得不擅長的開發(fā)人員也能寫出擴(kuò)展。是縮寫,讀音為。然后我們?cè)诶镎{(diào)用方法正常的話會(huì)輸出。至此我們也完成了我們的第一個(gè)擴(kuò)展。 概述 Zephir是一個(gè)開源的用于簡(jiǎn)化PHP擴(kuò)展的創(chuàng)建和維護(hù)的語言。它使得不擅長C/C++的PHP開發(fā)人員也能寫出PHP擴(kuò)展。Zephir是Zend Engine/PHP/Intermediate縮寫,讀音為zep...

    Vicky 評(píng)論0 收藏0
  • Zephir--最簡(jiǎn)單的php擴(kuò)展開發(fā)工具

    摘要:更多關(guān)于的技術(shù)文章的擴(kuò)展是用語言編寫,是語言引擎,內(nèi)核。見提供了一種類似的高級(jí)語言語法的方式,來自動(dòng)生成擴(kuò)展的語言代碼,使編寫擴(kuò)展變得非常的簡(jiǎn)單。直接修改該文件的代碼,使用原擴(kuò)展的編輯方法也是可以滴。 更多關(guān)于PHP的技術(shù)文章http://www.codefrom.com/ php的擴(kuò)展是用c語言編寫,Zend是語言引擎,PHP內(nèi)核。在實(shí)際編寫php擴(kuò)展的時(shí)候,需要使用大量的...

    dinfer 評(píng)論0 收藏0
  • PHP擴(kuò)展開發(fā)教程,通過實(shí)例來展示PHP擴(kuò)展開發(fā)和底層應(yīng)用原理(C語言非zephir

    摘要:主要是使用語言來開發(fā)擴(kuò)展,現(xiàn)在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現(xiàn)在已經(jīng)完成的案例如下登錄倉庫地址分布創(chuàng)建您的特性分支提交您的改動(dòng)將您的改動(dòng)記錄提交到遠(yuǎn)程倉庫然后到網(wǎng)站的該遠(yuǎn)程倉庫的分支下發(fā)起下邊是 主要是使用C語言來開發(fā)PHP擴(kuò)展,現(xiàn)在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現(xiàn)在已經(jīng)完成的案例如下: Dicretory ...

    james 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<