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

資訊專(zhuān)欄INFORMATION COLUMN

使用Zephir來(lái)快速編寫(xiě)高性能PHP二進(jìn)制拓展

AZmake / 2487人閱讀

摘要:這里我們使用來(lái)安裝我們的開(kāi)發(fā)環(huán)境,的安裝參考官方文檔使用安裝編譯器首先就是根據(jù)我們目標(biāo)版本拉取對(duì)應(yīng)的編譯器鏡像,這里我們版本是,于是使用這條命令然后創(chuàng)建文件,文件內(nèi)容如下對(duì)這個(gè)文件加上可執(zhí)行權(quán)限這樣我們就裝好了編譯器創(chuàng)建

這里我們使用Docker來(lái)安裝我們的開(kāi)發(fā)環(huán)境,docker的安裝參考官方文檔https://docs.docker.com/install/
使用Docker安裝Zephir編譯器

首先就是根據(jù)我們目標(biāo)PHP版本拉取對(duì)應(yīng)的Zephir編譯器鏡像,這里我們PHP版本是7.0,于是使用這條命令:

docker pull phalconphp/zephir:7.0

然后創(chuàng)建/usr/local/bin/zephir文件,文件內(nèi)容如下:

#!/usr/bin/env bash

docker_bin="$(which docker 2> /dev/null)"

# 5.4, 5.5, 5.6, 7, 7.0, latest
PHP_VERSION=7.0

${docker_bin} run -it --rm 
    --privileged=true 
    -e ZEND_DONT_UNLOAD_MODULES=1 
    -v $(pwd):/zephir 
    phalconphp/zephir:${PHP_VERSION} "$@"

ret=$?

if [ ${ret} -ne 0 ]; then
    errors="$(pwd)/compile-errors.log"
    if [ -e ${errors} ]; then
        cat ${errors}
    fi
fi

對(duì)這個(gè)文件加上可執(zhí)行權(quán)限:

sudo chmod a+x /usr/local/bin/zephir

這樣我們就裝好了Zephir編譯器:

$zephir version
0.9.7
創(chuàng)建一個(gè)PHP二進(jìn)制庫(kù)項(xiàng)目

這里我們創(chuàng)建的項(xiàng)目名叫做utils,使用Zephir腳手架初始化項(xiàng)目代碼:

zephir init utils

編寫(xiě)一個(gè)zep文件:

$ cat utils/utils/greeting.zep 
namespace Utils;

class Greeting
{

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

}
編譯這個(gè)項(xiàng)目
$cd utils
$ls
config.json ext utils
$zephir build

這樣我們就得到了我們編譯的so庫(kù)文件:ext/modules/utils.so

測(cè)試以及使用這個(gè)so庫(kù)文件

通過(guò)php -i | grep extension_dir得到我們PHP拓展so文件的安裝目錄是:/usr/lib/php/20151012/下面,于是2條命令完成cli模式PHP的拓展安裝,fpm模式也類(lèi)似,(通過(guò)php -i | grep "Scan this dir for additional .ini files"獲取ini配置文件目錄):

sudo cp ext/modules/utils.so /usr/lib/php/20151012/
echo "extension=utils.so" | sudo tee /etc/php/7.0/cli/conf.d/30-zephir-dev.ini

最后我們,寫(xiě)個(gè)PHP文件來(lái)測(cè)試下這個(gè)so庫(kù)是否安裝成功:

$cat > test.php <<_EOF

得到結(jié)果:

object(UtilsGreeting)#1 (0) {
}
hello world!
參考

https://hub.docker.com/r/phal...

https://docs.zephir-lang.com/...

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

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

相關(guān)文章

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

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

    arashicage 評(píng)論0 收藏0
  • PHP7 安裝Phalcon框架

    摘要:是什么是開(kāi)源全功能棧使用擴(kuò)展編寫(xiě)針對(duì)高性能優(yōu)化的框架。也是松耦合的,可以根據(jù)項(xiàng)目的需要任意使用其他對(duì)象。安裝支持版本的不支持普通方式的編譯安裝,只能通過(guò)安裝。因此安裝之前,請(qǐng)先安裝。 Phalcon 是什么? Phalcon 是開(kāi)源、全功能棧、使用 C 擴(kuò)展編寫(xiě)、針對(duì)高性能優(yōu)化的 PHP 5 框架。 開(kāi)發(fā)者不需要學(xué)習(xí)和使用 C 語(yǔ)言的功能, 因?yàn)樗械墓δ芏家?PHP 類(lèi)的方式暴露出來(lái)...

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

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

    dinfer 評(píng)論0 收藏0
  • Zephir入門(mén) —— Hello world篇

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

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

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

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

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

0條評(píng)論

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