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

資訊專欄INFORMATION COLUMN

Zephir入門 —— Hello world篇

Vicky / 2092人閱讀

摘要:概述是一個開源的用于簡化擴(kuò)展的創(chuàng)建和維護(hù)的語言。它使得不擅長的開發(fā)人員也能寫出擴(kuò)展。是縮寫,讀音為。然后我們在里調(diào)用方法正常的話會輸出。至此我們也完成了我們的第一個擴(kuò)展。

概述

Zephir是一個開源的用于簡化PHP擴(kuò)展的創(chuàng)建和維護(hù)的語言。它使得不擅長C/C++的PHP開發(fā)人員也能寫出PHP擴(kuò)展。Zephir是Zend Engine/PHP/Intermediate縮寫,讀音為zephyr。

Zephir在語法上跟PHP有很多相似之處,PHP開發(fā)人員可以很快上手,但也有很多地方上的不同需要我們?nèi)W(xué)習(xí)。下面是Zephir一些主要的特色:

變量類型:動態(tài)/靜態(tài)

內(nèi)存安全:不允許指針和直接的內(nèi)存管理

編譯模型:AOT(ahead of time)

內(nèi)存模型:task-local垃圾回收

安裝 依賴

要使用Zephir和編譯出一個PHP擴(kuò)展,需要先安裝以下的依賴:

gcc >= 4.x/clang >= 3.x

re2c 0.13+

gnu make 3.81+

autoconf 2.31+

automake 1.14+

libpcre3

php development headers and tools

安裝

這里選擇使用git的方式獲取源代碼并進(jìn)行安裝:

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

如果已經(jīng)安裝了json-c,那么可以忽略 ./install-json這一步。

驗(yàn)證

通過運(yùn)行zephir命令驗(yàn)證下是否安裝成功:

bash$ zephir help

 _____              __    _
/__  /  ___  ____  / /_  (_)____
  / /  / _ / __ / __ / / ___/
 / /__/  __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
         /_/

Zephir version 0.7.1b

Usage: 
        command [options]

Available commands:
        stubs               Generates extension PHP stubs
        install             Installs the extension (requires root password)
        fullclean           Cleans the generated object files in compilation
        build               Generate/Compile/Install a Zephir extension
        generate            Generates C code from the Zephir code
        clean               Cleans the generated object files in compilation
        builddev            Generate/Compile/Install a Zephir extension in development mode
        compile             Compile a Zephir extension
        version             Shows the Zephir version
        api [--theme-path=/path][--output-directory=/path][--theme-options={json}|/path]Generates a HTML API
        help                Displays this help
        init [namespace]    Initializes a Zephir extension

Options:
        -f([a-z0-9-]+)     Enables compiler optimizations
        -fno-([a-z0-9-]+)  Disables compiler optimizations
        -w([a-z0-9-]+)     Turns a warning on
        -W([a-z0-9-]+)     Turns a warning off
我們的第一個擴(kuò)展

下面我們使用Zephier來創(chuàng)建一個“hello world”擴(kuò)展。

初始化

首先,我們使用init命令來初始化擴(kuò)展的基本結(jié)構(gòu)(假設(shè)我們擴(kuò)展的名稱為“utils”):

bash$ zephir init utils

成功運(yùn)行后,我們應(yīng)該會得到如下的目錄結(jié)構(gòu):

bashutils/
   ext/
   utils/

ext目錄里放的是編譯器需要用到的代碼,不用理會,我們的Zephir代碼將放在跟擴(kuò)展名同名的utils里。

編寫代碼

我們在utils目錄下創(chuàng)建一個文件:greeting.zep,并編寫代碼:

phpnamespace Utils;

class Greeting
{

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

}

這里不深入Zephir的語法,但是可以看到語法跟PHP很類似,上面的代碼定義了一個類Greeting和一個方法say()。

  

Zephir的語法詳情可以參考官方的文檔:http://zephir-lang.com/language.html。

編譯

接下來,我們回到utils根目錄下并運(yùn)行build命令編譯出擴(kuò)展:

bash$ zephir build     
Preparing for PHP compilation...
Preparing configuration file...
Compiling...
Installing...
Extension installed!
Add extension=utils.so to your php.ini
Don"t forget to restart your web serverp

編譯成功后,我們在PHP配置文件里增加以下一行:

iniextension=utils.so
驗(yàn)證

通過如下命令查看我們的擴(kuò)展是否正常加載:

bashphp -m
[PHP Modules]
...
memcached
mysql
mysqli
mysqlnd
openssl
utils
...

如果看到我們擴(kuò)展的名字,則證明已成功加載。

然后我們在PHP里調(diào)用say()方法:

php

正常的話會輸出:hello world!。至此我們也完成了我們的第一個擴(kuò)展。

參考

http://zephir-lang.com/index.html

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

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

相關(guān)文章

  • Zephir入門 —— 語法

    摘要:變量對象屬性數(shù)組靜態(tài)變量不支持全局變量,也不允許訪問用戶域的全局變量,但是可以訪問的超級全局變量變量類型支持動態(tài)和靜態(tài)類型。雖然失去了動態(tài)型變量的靈活性,但是在編譯時靜態(tài)變量能進(jìn)行更多的優(yōu)化。 概述 Zephir的語法跟PHP很相似,所以這里不會把官網(wǎng)的文檔照搬過來翻譯一遍,而是會把一些Zephir相較于PHP比較特別的語法挑出來講一下。如果想要要完整學(xué)習(xí)Zephir的語法,沒有比官...

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

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

    alaege 評論0 收藏0
  • 使用 Zephir 輕松構(gòu)建 PHP 擴(kuò)展

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

    gaosboy 評論0 收藏0
  • 【PHP 擴(kuò)展開發(fā)】Zephir 簡介

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

    arashicage 評論0 收藏0
  • Zephir--最簡單的php擴(kuò)展開發(fā)工具

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

    dinfer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<