ホームページ >バックエンド開発 >PHPチュートリアル >Zephir - 最もシンプルな PHP 拡張機能開発ツール
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 拡張機能の編集方法を使用することもできます。