【圖片打不開,請用代理】

介紹:
PHP擴展是編譯庫,它允許在您的PHP代碼中使用特定的功能(主要是使用C編寫的php擴展)。
例如,您需要使用PHP使用SQLite3,您可以實現自己的方法和功能來連接到Sqlite3,從您的應用程序級別向DB進行查詢,但這不是一項簡單的任務,插件不僅是您自己的要求,但其他開發人員需要做類似的事情。
所以有人開發了它並將其作為php擴展發送,您可以安裝此擴展並php.ini
使用以下內容啟用它extension=sqllite3.so
,並且您可以通過您的應用程序級別訪問所有sqlite3功能,在這種情況下是php。
你的第一次擴展
ZEPHIR:
根據zephir官方文檔,您可以將其定義如下
一種開源的,高級/域特定的語言,旨在簡化PHP擴展的創建和可維護性,重點關注類型和內存安全性。
特征:
- 輸入 系統:動態/靜態。
- 內存安全:不允許使用指針或直接內存管理。
- 編譯模型:提前。
- 內存模型:任務本地垃圾收集。
這個怎么運作 ?
您編寫PHP代碼並將您的代碼編譯為c擴展名,最后您可以將其添加到您的php.ini
文件中。
這是編譯方案的例子:

編制方案
- 讓我們以Hello world擴展為例。
Zephir安裝
要求 :
- gcc> = 4.x / clang> = 3.x
- re2c 0.13或更高版本
- gnu make 3.81或更高版本
- autoconf 2.31或更高版本
- automake 1.14或更高版本
- libpcre3
- php開發標題和工具
- re2c
- PHP-ZEPHIR解析器
如果您使用的是Ubuntu,則可以通過以下方式安裝所需的軟件包:
sudo apt-get update
sudo apt-get install git gcc make re2c php7.0 php7.0-json php7.0-dev libpcre3-dev
由於Zephir是用PHP編寫的,因此您需要安裝最新版本的PHP 7.2,並且必須在您的控制台中使用它。
此外,請確保您還安裝了PHP開發庫以及PHP安裝。
腳步
git clone https://github.com/phalcon/zephir
cd zephir
./install -c
驗證您的安裝
zephir幫助
如果一切順利,您應該在屏幕上看到以下幫助:

擴展骨架:
zephir init helloworld
在此之后,在當前工作目錄上創建一個名為“helloworld”的目錄:

擴展目錄結構
- ext:包含編譯器用於生成擴展的代碼。
- helloworld:這個目錄與我們的擴展名相同。我們將Zephir代碼放在此目錄中。
- config.json:此文件包含我們可用於更改Zephir和/或此擴展的行為的配置設置。
添加我們的頭等艙:
在helloworld目錄中。
Zephir旨在生成面向對象的擴展。要開始開發功能,我們需要將第一個類添加到擴展中。
讓我們在擴展中創建helloworld類來渲染hello world
此類的代碼必須放在“helloworld / helloworld / greeting.zep”中:
namespace HelloWorld; class Greeting { public static function say() { echo "Hello World!"; } }
現在,我們需要告訴Zephir我們的項目必須編譯並生成擴展:
zephir build
最初,並且只是第一次執行許多內部命令,生成必要的代碼和配置以將此類導出到PHP擴展,如果一切順利,您將在輸出的末尾看到以下消息:

zephir構建輸出
安裝驗證:

從PHP測試您的擴展:
<?php echo HelloWorld\Greeting::say()."\n";
運行以下命令,
php zephir_helloworld.php
您的輸出應該是以下Hello World!
結論:
如果你是軟件工程師,php開發人員需要開發和使用php如何工作以及如何構建自己的擴展我建議zephir有一個非常強大的文檔和felxability也是它的內存安全管理。但是由於它有一些限制,根據以下Zephir被設計為安全,所以它不實現指針或手動內存管理,所以如果你是一個C程序員,你會覺得Zephir不如C強大但比C更友好。
參考文獻: