oikynブログ

エンジニアの技術ブログ。主にWEB、iOS、サービス、ツールなどなど。

PHP, Phalcon, Zephir

Zephir

http://blog.phalconphp.com/post/57161129440/phalcon-2-0-the-future
Phalconの2系からは、開発言語にZephir言語を使用しているそうで、
PHPC言語なイメージらしいです。

公式ドキュメント
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。