亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Zephir--最簡(jiǎn)單的php擴(kuò)展開發(fā)工具

dinfer / 1020人閱讀

摘要:更多關(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í)候,需要使用大量的Zend Api,雖然運(yùn)行效率高,但是其實(shí)難度也比較大。見:http://php.net/manual/zh/internals2.ze1.zendapi.php

Zephir提供了一種類似php的高級(jí)語言語法的方式,來自動(dòng)生成擴(kuò)展的c語言代碼,使編寫php擴(kuò)展變得非常的簡(jiǎn)單。

官網(wǎng):http://www.zephir-lang.com/
官方的安裝教程:http://www.zephir-lang.com/welcome.html
ubuntu下需要安裝相關(guān)的依賴

$ sudo apt-get update
$ sudo apt-get install git gcc make re2c php5 php5-json php5-dev libpcre3-dev

當(dāng)然別的平臺(tái)根據(jù)實(shí)際提示,安裝對(duì)應(yīng)的程序即可

$ git clone https://github.com/phalcon/zephir
$ cd zephir
$ ./install-json
$ ./install -c

測(cè)試安裝是否成功

$ zephir help

使用示例如下:

$ zephir init utils

會(huì)在當(dāng)前目錄下生成

ext/ utils/ config.json

然后編輯utils子目錄下的greeting.zep 內(nèi)容如下:

 namespace Utils;

 class Greeting
 {
     public static function say()
     {
         var a = "hello world";
         echo strtoupper(a);
     }
 }

這里的namespace是必須添加的,輸出大寫的"hello,world"。可以直接使用php的內(nèi)置函數(shù)。
然后運(yùn)行

$ zephir build

然后就會(huì)在擴(kuò)展目錄下生成utils.so,修改php.ini添加添加該擴(kuò)展。調(diào)用方法:



擴(kuò)展閱讀:
zephir生成的c語言文件默認(rèn)在/ext/utils/greeting.zep.c,核心內(nèi)容如下:

PHP_METHOD(Utils_Greeting, say) {

    zval *a, *_0;

    ZEPHIR_MM_GROW();
    ZEPHIR_INIT_VAR(a);
    ZVAL_STRING(a, "hello world", 1);

    ZEPHIR_INIT_VAR(_0);
    zephir_fast_strtoupper(_0, a);
    zend_print_zval(_0, 0);
    ZEPHIR_MM_RESTORE();

}

可以發(fā)現(xiàn)zephir一方面直接zend api 如:zend_print_zval。另一方面封裝了zend api,如:zephir_fast_strtoupper 。直接修改該文件的c代碼,使用原php擴(kuò)展的編輯方法也是可以滴。

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

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

相關(guān)文章

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

    摘要:什么是是一種中間語言,以接近的語法來編寫代碼,然后轉(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ù)性。利用編譯來提高性能和資源消耗,又不需...

    arashicage 評(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 輕松構(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
  • Zephir入門 —— Hello world篇

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

    Vicky 評(píng)論0 收藏0
  • PHP擴(kuò)展開發(fā)教程1 - 相關(guān)開發(fā)技術(shù)對(duì)比及介紹

    摘要:四使用語言開發(fā)是我重點(diǎn)推薦的擴(kuò)展開發(fā)框架,簡(jiǎn)明易懂,功能強(qiáng)大,開發(fā)效率高,代碼易維護(hù),執(zhí)行速度快。優(yōu)點(diǎn)三支持,的擴(kuò)展開發(fā)有兩套擴(kuò)展開發(fā)框架,分別支持,,雖然框架代碼有兩個(gè),但是接口卻是一樣的。 PHP擴(kuò)展是高級(jí)PHP程序員必須了解的技能之一,對(duì)于一個(gè)初入門的PHP擴(kuò)展開發(fā)者,怎么才能開發(fā)一個(gè)成熟的擴(kuò)展,進(jìn)入PHP開發(fā)的高級(jí)領(lǐng)域呢?本系列開發(fā)教程將手把手帶您從入門進(jìn)入高級(jí)階段。本教程系列...

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

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

0條評(píng)論

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