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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-20 12:55:30
オリジナル
1260 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート