【PHP拡張開発】Zephir概要
Zephirとは
Zephirは、PHPに近い構文でコードを記述し、PHP拡張に変換してコンパイルする中間言語で、PHP拡張の作成と保守性を簡素化することを目的としています.コンパイルによりパフォーマンスとリソース消費が向上し、メモリ管理などの複雑な操作に注目する必要がありません.
インストール
Zephirを使用してPHP拡張を開発するには、以下の要件(centos 7+php 7.2を例に)を満たす必要があります.
コンパイル環境
公式例はubuntuで、以下の拡張子をインストールする必要があります.
centos,yumでインストールします
一部のライブラリにはソースがない場合があります.ソースを交換したり、ソースコードのインストールをダウンロードしたりすることができます.
php拡張
Zephir parser >= 1.1.0
gmp(PHPソースコードにこの拡張が含まれており、デフォルトではインストールされていません)
拡張インストール方法は大同小異であり、別途説明しない.
この2つの拡張子をソースコードコンパイルで追加インストールし、iniファイルを構成します.
Zephirのインストール
Zephirは現在、0.10を維持する2つの大きなバージョンを持っている.Xおよび0.11.X.2つのバージョンの差が大きいので、0.11を選択します.X、最新バージョンをダウンロードし、pharパッケージを使用
インストールに成功したかどうかを確認
以下の図を装って表示する
拡張の作成
アプリケーションの初期化
次の2つのディレクトリと1つのファイルを生成します.
コードの作成
注:Zephirでは、各ファイルに1つのクラス(1つのクラスのみ)が含まれている必要があります.各クラスにはネーミングスペースが必要であり、ディレクトリ構造は使用するクラスとネーミングスペースの名前と一致する必要があります.
phpstormをIDEとして使用し、Zephirプラグインをインストールします.
first\first\hello.zep
コンパイル
初めて実行して、運が悪いと失敗します.詳細はcompile-errorsを参照してください.logファイルの内容.
buildが成功するとfirstが自動的に生成されます.soファイルをextensionディレクトリに移動するにはphpを編集する必要があります.ini充填拡張
テストしてみる
こうして、あなたもPHP拡張開発ができます.
附1:Available commands:
付2:Windowsコンパイル拡張の方法https://blog.csdn.net/abc1035...
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...