PHP拡張機能開発(Zephir版)

WBOY
リリース: 2016-06-23 13:39:59
オリジナル
863 人が閲覧しました

前回の記事では、C 言語で PHP 拡張機能を開発する方法を紹介しました

Zephir について簡単に説明します。Zephir は、コンパイル可能な言語を記述することができる高水準言語です。 PHP 開発者向けの静的型。フレームワークの第 2 バージョンを開発するために優秀な Phalcon チームによって書かれた新しい言語です。その構文は非常に便利で、実行効率は C と同等と言われています。コンパイルプロセスは次のとおりです: Zephir -> C - >

Zephir の目的はオブジェクト指向のライブラリまたはフレームワークを作成することであるため、Clang 拡張機能とは異なり、非 OOP モジュールを作成できません。

詳細については、公式 Web サイトをご覧ください: http://zephir-lang.com /


Zephir のインストール zephir をインストールするための前提条件:

PHP 拡張機能を構築して Zephir を使用するには、次の要件が必要です。
gcc >= 4.x/clang >= 3.x
re2c 0.13 以降
gnu make 3.81 以降
autoconf 2.31 以降
automake 1.14 以降
libpcre3
PHP 開発ヘッダーとツール

もしあなたがubuntu を使用している場合は、次のようにパッケージをインストールできます:
$ sudo apt-get update$ sudo apt-get install git gcc make re2c php5 php5-json php5-dev libpcre3-dev
ログイン後にコピー
、PHP 開発ライブラリもインストールされていることを確認してください (PHP のインストール時):
$ phpize -vConfiguring for:PHP Api Version:         20121113Zend Module Api No:      20121212
ログイン後にコピー
現在の Zephir コンパイラは Github から複製する必要があります:
$ git clone https://github.com/phalcon/zephir
ログイン後にコピー
Zephir インストーラを実行します (パーサーのコンパイル/作成):
$ cd zephir$ ./install-json$ ./install -c
ログイン後にコピー
MAC でインストールする前に automake をインストールする必要がある場合もあります:
$ brew install automake
ログイン後にコピー

インストールを検出し、次のコマンドを実行して任意のディレクトリから Zephir を使用して拡張機能を開発できるかどうかを確認します:

$ zephir help _____              __    _/__  /  ___  ____  / /_  (_)____  / /  / _ \/ __ \/ __ \/ / ___/ / /__/  __/ /_/ / / / / / //____/\___/ .___/_/ /_/_/_/         /_/Zephir version 0.5.9a...
ログイン後にコピー


Developing Zephir を使用した拡張機能

最初に行う必要があるのは、拡張機能の基本構造を提供する拡張機能スケルトンを生成することです

以下 この例では、「utils」という名前の拡張機能を作成します。


$ zephir init utils
ログイン後にコピー
Afterつまり、現在のディレクトリに「utils」ディレクトリが存在します。
utils/ ext/
utils/
ext/ このディレクトリには、コンパイラが含まれています。 拡張機能に必要なコード (C ソース コード) を生成します。
utils/ ディレクトリ。これは Zephir のソース コードです

作業ディレクトリ (utils の下) に切り替えて、コードの作成を開始する必要があります:
$ cd utils$ lsext/ utils/ config.json</span>
ログイン後にコピー
その中の config.json ファイルには、動作を変更するために使用できる設定が含まれています。 Zephir の最初のクラスを追加します:
// utils/utils/greeting.zepnamespace Utils;class Greeting{    public static function say()    {        echo "hello world!";    }}
ログイン後にコピー
次に、プロジェクトを拡張機能にコンパイルするように Zephir に指示する必要があります:
$ zephir build
ログイン後にコピー
うまくいけば、次の情報が出力されます。 :
...
拡張機能がインストールされました!
extension=utils.so を php.ini に追加します
Web サーバーを再起動することを忘れないでください

初期テスト:
$ php -m
[PHP モジュール]
...
SPL
標準
トークナイザー
ユーティリティ
....

さて、PHP を使用して呼び出します:
<?phpecho Utils\Greeting::say(), "\n";
ログイン後にコピー
print hello world!
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート