Phalconを初めて知ったのはもう忘れるくらい昔の話です。今でも活発に開発が行われており、かなり使えるフレームワークに仕上がっています。
Phalconは他のどのPHPフレームワークと違う特徴があります。PhalconはPHPのフレームワークですが、PHPで書かれていません。C言語で書かれています。つまり、PHPのネイティブモジュールとして動作するPHPフレームワークです。
参考:
Fedora19用のRPM/SPRMパッケージを作りました。
フレームワーク対決:Node.js+SailsとPHP+Phalconのベンチマーク
Phalconの特徴と機能
書ききれないのですが、Phalconの特徴と機能は以下の通りです。
- C言語で記述されたネイティブモジュールのフレームワーク
- 「最速」フレームワーク
- DIサポート
- MVCサポート
- Phalcon devtoolsによるscaffolding
- アノテーション
- i18n
- ORM
- ODM
- テンプレート(Volt)
多少古いバージョンでの比較ですが、どれくらい速いのか?はマニュアルに記載されています。次のグラフは単純なHello Worldプログラムのベンチマークです。
リクエスト/秒
メモリ使用量
参考
Phalconモジュールのインストール
ここではCentOS/Scientific Linuxでのインストール例を紹介しますが、マニュアルにはWindows/OSXなどのインストール手順も記載されています。PhalconはC言語で記載されているのでPHPがビルドできる環境でなければなりません。つまり、CentOSなどであればgccなどのビルドツール、php-develなどの開発パッケージが必要です。ソースコードをgitレポジトリから取得する為にgitも必要です。WebサーバーにはApache httpdを利用します。予めインストールしてください。
sudo yum groupinstall "Development Tools" sudo yum install httpd git php php-cli php-devel
新しいPHPを利用したい場合はRackSpace社が提供しているIUSレポジトリが便利です。RHEL5/6、CentOS5/6用に新しいPHPパッケージなどが配布されています。例えば、RHEL6 x86_64の場合は
http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/
の中のepel-release-6-XX.noarch.rpm、ius-release-1.0-XX.ius.el6.noarch.rpm(XXはリリース番号)をインストールすればレポジトリ内のパッケージがインストールできるようになります。testingレポジトリにはPHP 5.5もあります。PhalconはPHP 5.3以上であればビルドできます。
私のテスト環境は必要な開発パッケージは概ね入っています。もしかするとこれ以外の開発パッケージが必要かも知れません。必要な場合はコメント頂けると助かります。準備ができたら次のコマンド実行します。
git clone git://github.com/phalcon/cphalcon.git cd cphalcon/build sudo ./install
install
スクリプトはインストールされているPHP用にPhalconモジュールをビルドしインストールします。
ただし、モジュールをロードする設定ファイルはインストールされないので手動で作成します。
sudo -c sh 'echo "extension=phalcon.so" > /etc/php.d/phalcon.ini'
httpdサービスを再起動すればPhalconがインストールされている事が確認できるはずです。
sudo service httpd restart
Webサーバーのドキュメントルート(デフォルトは/var/www/html)にphpinfo.phpを
<?php phpinfo() ?>
を作成しブラウザでアクセスするとPhalconがインストールされている事を確認できます。
phpコマンドでもphp -i
を実行すると確認できるはずです。
phalcon Phalcon Framework => enabled Phalcon Version => 1.2.4
Phalcon devtoolsのインストール
Phalcon devtoolsをインストールするとプロジェクトの作成などが簡単に行えるようになります。PHP 5.3.9以上が必要なので注意してください。(PHP 5.4以上で利用する事をお薦めします。PHP 5.4も来年春EOLですが。。)
Composerを利用することができます。(GitHubからソースを取得する方法、pearコマンドを利用する方法もあります)
curl -s http://getcomposer.org/installer | php
composer.pharがカレントディレクトリに作成されます。
ComposerでPhalcon devtoolsを取得するcomposer.jsonファイルを作成します。
{ "require": { "phalcon/devtools": "dev-master" } }
以下のコマンドでインストールを実行します。
php composer.phar install
カレントディレクトリに devtools
ディレクトリが作成されます。phalcon.phpがコマンドとして利用できるようにシンボリックリンクを作成します。
sudo ln -s devtool/phalcon.php /usr/bin/phalcon sudo chmod ugo+x /usr/bin/phalcon
インストールが完了すればphalconコマンドが利用できるようになります。
プロジェクトの作成
phalconコマンドをインストールするとプロジェクトの作成はコマンド1つで行えます。
Webサーバーのドキュメントルートに移動して
phalcon project mysite simple
を実行するとプロジェクトが作成されます。
作成されるディレクトリやファイルはMVCモデルのフレームワークを知っている方ならお馴染みのディレクトリとファイルです。
http://localhost/mysite/public/
にアクセスするとPhalconのページにアクセスできます。
後は普通のフレームワークを使い方は同じです。MVCフレームワークになれている方であればマニュアルを見ると使い方が直ぐに分かると思います。
Phalcon 2
Phalcon 1.xのモジュール(機能)はC言語で記述されています。しかし、開発中のPhalcon 2からはZephir言語で記述されています。Cのようにメモリを直接操作できないので安全なモジュールを容易に作成できます。ビジネスロジックのほとんどはPHPで記述し、どうしてもネイティブコードのパフォーマンスが必要な部分をZephir(マニュアル)で記述できるようになります。
大量のリクエストを処理する大規模サイトなどでは非常に便利な機能になります。
FacebookにPhalconのページを作りました。よろしければご参加ください。
追記
ZephirはPHPモジュールを書くための言語です。Phalcon専用ではありません。他のフレームワークを利用されている場合でも、PHPを高速化する為に利用できます。是非、利用してみて下さい。
コメントは受け付けていません。