ホームページ >バックエンド開発 >PHPチュートリアル >Zephir - 最もシンプルな PHP 拡張機能開発ツール

Zephir - 最もシンプルな PHP 拡張機能開発ツール

WBOY
WBOYオリジナル
2016-06-20 12:55:301217ブラウズ

PHP に関するその他の技術記事 http://www.codefrom.com/

PHP 拡張機能は C 言語で書かれており、Zend は言語エンジン、PHP コアです。実際にPHPの拡張機能を記述する場合、多数のZend APIを使用する必要がありますが、動作効率は高いですが、実際には非常に困難です。参照: http://php.net/manual/zh/internals2.ze1.zendapi.php

Zephir は、PHP に似た高級言語構文を提供し、拡張 C 言語コードを自動的に生成します。とても簡単です。

公式 Web サイト: http://www.zephir-lang.com/
公式インストール チュートリアル: http://www.zephir-lang.com/welcome.html
以下にインストールする必要がありますubuntu 関連する依存関係

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

もちろん、他のプラットフォームの場合は、実際のプロンプトに従って対応するプログラムをインストールできます

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

インストールが成功したかどうかをテストします

$ zephir help

使用例 以下のようになります。

$ zephir init utils

がカレントディレクトリに生成されます

ext/ utils/ config.json

次に、utils サブディレクトリのgreeting.zep を編集すると、内容は次のようになります。

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

ここに名前空間を追加する必要があり、出力は大文字の「hello, world」になります。 PHP の組み込み関数を直接使用できます。
次に、

$ zephir build

を実行すると、拡張機能ディレクトリに utils.so が生成されます。php.ini を変更して拡張機能を追加します。呼び出し方法:

<?phpecho Utils\Greeting::say(), "\n";

拡張読み:
zephir によって生成された C 言語ファイルは、デフォルトでは /ext/utils/greeting.zep.c にあり、コアの内容は

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();}

zephir は、zend_print_zval などの zend API を直接見つけることができます。一方、zephir_fast_strtoupper などの zend API をカプセル化します。ファイルの C コードを直接変更することも、元の PHP 拡張機能の編集方法を使用することもできます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。