【PHP拡張開発】Zephir概要


Zephirとは
Zephirは、PHPに近い構文でコードを記述し、PHP拡張に変換してコンパイルする中間言語で、PHP拡張の作成と保守性を簡素化することを目的としています.コンパイルによりパフォーマンスとリソース消費が向上し、メモリ管理などの複雑な操作に注目する必要がありません.
インストール
Zephirを使用してPHP拡張を開発するには、以下の要件(centos 7+php 7.2を例に)を満たす必要があります.
コンパイル環境
公式例はubuntuで、以下の拡張子をインストールする必要があります.
sudo apt-get install git gcc make re2c php php-json php-dev libpcre3-dev build-essential

centos,yumでインストールします
yum install -y git gcc make re2c autoconf automake libtool pcre pcre-devel

yum groupinstall -y "Development Tools"

一部のライブラリにはソースがない場合があります.ソースを交換したり、ソースコードのインストールをダウンロードしたりすることができます.
php拡張
Zephir parser >= 1.1.0
wget https://github.com/phalcon/php-zephir-parser/archive/v1.2.0.tar.gz

mv v1.2.0.tar.gz php-zephir-parser-v1.2.0.tar.gz

tar -xvzf php-zephir-parser-v1.2.0.tar.gz

cd php-zephir-parser-1.2.0/

/usr/local/php7/bin/phpize

./configure --with-php-config=/usr/local/php7/bin/php-config

make && make install

gmp(PHPソースコードにこの拡張が含まれており、デフォルトではインストールされていません)
拡張インストール方法は大同小異であり、別途説明しない.
この2つの拡張子をソースコードコンパイルで追加インストールし、iniファイルを構成します.
extension=gmp.so
extension=zephir_parser.so

Zephirのインストール
Zephirは現在、0.10を維持する2つの大きなバージョンを持っている.Xおよび0.11.X.2つのバージョンの差が大きいので、0.11を選択します.X、最新バージョンをダウンロードし、pharパッケージを使用
cd /usr/local/bin

wget https://github.com/phalcon/zephir/releases/download/0.11.10/zephir.phar

chmod 755 zephir.phar

ln -s /usr/local/bin/zephir.phar zephir

インストールに成功したかどうかを確認
zephir help

以下の図を装って表示する
拡張の作成
アプリケーションの初期化
zephir init first

次の2つのディレクトリと1つのファイルを生成します.
コードの作成
注:Zephirでは、各ファイルに1つのクラス(1つのクラスのみ)が含まれている必要があります.各クラスにはネーミングスペースが必要であり、ディレクトリ構造は使用するクラスとネーミングスペースの名前と一致する必要があります.
phpstormをIDEとして使用し、Zephirプラグインをインストールします.
first\first\hello.zep
namespace First;

class Hello
{

    public static function world() {
        echo "Hello world!";
    }

    public static function zephir() {
        echo "Hello Zephir!";
    }

}

コンパイル
zephir build

初めて実行して、運が悪いと失敗します.詳細はcompile-errorsを参照してください.logファイルの内容.
buildが成功するとfirstが自動的に生成されます.soファイルをextensionディレクトリに移動するにはphpを編集する必要があります.ini充填拡張
テストしてみる
";

こうして、あなたもPHP拡張開発ができます.
附1:Available commands:
    init                Initializes a Zephir extension
    builddev            Generates/Builds/Installs a Zephir extension in development mode
    api                 Generates a HTML API based on the classes exposed in the extension
    clean               Cleans any object files created by the extension
    generate            Generates C code from the Zephir code without compiling it
    build               Generates/Builds/Installs a Zephir extension
    stubs               Generates stubs that can be used in a PHP IDE
    help                Displays this help and exit
    fullclean           Cleans any object files created by the extension (including files generated by phpize)
    compile             Compile a Zephir extension
    install             Installs the extension in the extension directory (may require root password)
    version             Shows the Zephir version

付2:Windowsコンパイル拡張の方法https://blog.csdn.net/abc1035...