PHP, Phalcon, Zephir
Zephir
http://blog.phalconphp.com/post/57161129440/phalcon-2-0-the-future
Phalconの2系からは、開発言語にZephir言語を使用しているそうで、
PHP+C言語なイメージらしいです。
公式ドキュメント
http://zephir-lang.com/
導入方法
http://www.michaelgallego.fr/blog/2013/08/28/a-quick-introduction-to-zephir-language/
ソース
https://github.com/phalcon/zephir
必須モジュールインスト
sudo yum -y install git-core sudo yum -y install gcc libtool
clangインスト
cd /usr/local/src/ sudo wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh epel-release-6-8.noarch.rpm sudo yum install -y clang
json-cインスト
cd /usr/local/src/ sudo git clone https://github.com/json-c/json-c.git cd json-c sudo sh autogen.sh sudo ./configure sudo make sudo make install sudo make check
re2cインスト
http://labs.web-mix.jp/linux/centos/centos_add_rpmforge/
cd /usr/local/src/ sudo wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm sudo rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm --- # sudo vi /etc/yum.repos.d/rpmforge.repo enabled = 0 --- sudo yum --enablerepo=rpmforge install -y re2c
zephirインスト
cd /usr/local/src/ sudo git clone https://github.com/phalcon/zephir.git cd zephir/ sudo ./install
PHPアップデート
(※5.4系じゃないとコンパイル時にエラーになるので)
sudo yum -y install php php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml # yumだと5.3までしかないので、それ以上に上げたい場合 //リポジトリの追加 sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm //php5.4にアップデートされることを確認。 sudo yum --enablerepo=epel,remi,rpmforge info php //アップデート実行 sudo yum --enablerepo=epel,remi,rpmforge update -y php php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml
Zephirコードのコンパイル
1.ZephirコードをCに変換
2.CコードをPHPエクステンションにコンパイル
以下を実行すると、/extフォルダに変換されたC言語コードが生成されます。
sudo ./bin/zephir compile
以下を実行すると、PHPエクステンションが生成されます。
cd /ext sudo phpize sudo ./configure sudo make sudo make install
生成されたsoファイルをphp.iniでロードするようにすればOK。