摘要:什么是是一種中間語言,以接近的語法來編寫代碼,然后轉換編譯成擴展,旨在簡化擴展的創建和可維護性。如果成功,會自動生成文件到目錄你需要編輯填加擴展測試一下就這樣,你也會擴展開發了附附編譯擴展的方法
什么是 Zephir
Zephir 是一種中間語言,以接近 PHP 的語法來編寫代碼,然后轉換編譯成 PHP 擴展,旨在簡化 PHP 擴展的創建和可維護性。利用編譯來提高性能和資源消耗,又不需要關注內存管理等復雜操作。
安裝
要使用 Zephir 開發 PHP 擴展 ,需要滿足以下要求 (以 centos7 + php7.2 為例)
編譯環境
官方示例以 ubuntu ,需要安裝如下擴展
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 擴展
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 源碼中包含該擴展,默認情況下不安裝)
擴展安裝方法大同小異,不另說明
以源碼編譯的方式追加安裝這兩擴展,并配置ini文件
extension=gmp.so extension=zephir_parser.so
安裝 Zephir
Zephir 目前有兩個大版本在維護 0.10.X和0.11.X。兩個版本差別比較大,我們選擇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
安裝成裝顯示如下圖
創建擴展
初始化一個應用
zephir init first
生成如下兩個目錄和一個文件
編寫代碼
注意:在 Zephir 中, 每個文件都必須包含一個類 (并且只有一個類)。 每個類都必須有一個命名空間, 并且目錄結構必須與所使用的類和命名空間的名稱相匹配。
使用 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
第一次執行,運氣不好的話會失敗。詳細日志見 compile-errors.log 文件的內容。
如果 build 成功,會自動生成 first.so 文件到 extension 目錄 ,你需要編輯 php.ini 填加擴展
測試一下
就這樣,你也會 PHP 擴展開發了
附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 編譯擴展的方法
https://blog.csdn.net/abc1035...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30154.html
摘要:簡介通過擴展,我們可以在代碼中使用一些特定的方法大部分的擴展都是用寫的。這個目錄與我們的擴展同名。我們先來在擴展中創建一個類,使用此類來渲染。接下來命令行執行以下命令來編譯擴展第一次運行以上命令時,會初始化一些東西。 showImg(https://segmentfault.com/img/remote/1460000018698586); 簡介: 通過 PHP 擴展, 我們可以在 p...
摘要:變量作為函數返回值時,必須聲明為動態類型。動態變量與中的變量基本完全相同支持在使用時改變類型。比較運算符在運算時考慮變量類型,如果是動態變量與一致。與不一致,語句可以沒有,表示忽略所有異常。 上一篇 《Zephir 簡介》 簡單介紹了環境搭建,編寫了一個的簡單示例。這一篇繼續介紹 Zephir 基礎。 基本語法Zephir 中,每個文件都必須有且只有一個類,每個類都必須有一個命名空間,...
摘要:概述是一個開源的用于簡化擴展的創建和維護的語言。它使得不擅長的開發人員也能寫出擴展。是縮寫,讀音為。然后我們在里調用方法正常的話會輸出。至此我們也完成了我們的第一個擴展。 概述 Zephir是一個開源的用于簡化PHP擴展的創建和維護的語言。它使得不擅長C/C++的PHP開發人員也能寫出PHP擴展。Zephir是Zend Engine/PHP/Intermediate縮寫,讀音為zep...
摘要:更多關于的技術文章的擴展是用語言編寫,是語言引擎,內核。見提供了一種類似的高級語言語法的方式,來自動生成擴展的語言代碼,使編寫擴展變得非常的簡單。直接修改該文件的代碼,使用原擴展的編輯方法也是可以滴。 更多關于PHP的技術文章http://www.codefrom.com/ php的擴展是用c語言編寫,Zend是語言引擎,PHP內核。在實際編寫php擴展的時候,需要使用大量的...
摘要:主要是使用語言來開發擴展,現在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現在已經完成的案例如下登錄倉庫地址分布創建您的特性分支提交您的改動將您的改動記錄提交到遠程倉庫然后到網站的該遠程倉庫的分支下發起下邊是 主要是使用C語言來開發PHP擴展,現在的案例正在一步一步完善中,希望有興趣的朋友一起來加入和完善,現在已經完成的案例如下: Dicretory ...
閱讀 663·2023-04-26 02:03
閱讀 1037·2021-11-23 09:51
閱讀 1111·2021-10-14 09:42
閱讀 1738·2021-09-13 10:23
閱讀 927·2021-08-27 13:12
閱讀 839·2019-08-30 11:21
閱讀 1001·2019-08-30 11:14
閱讀 1041·2019-08-30 11:09