PHP最速フレームワークPhalconのインストール

(Last Updated On: 2018年8月13日)

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プログラムのベンチマークです。

リクエスト/秒

Framework / Requests per second (#/sec) [more is better]Requestsper secondZendLaravelSymfonyFuelYiiKohanaCodeIgniterPhalcon2009001,6002,3003,000
541.01

メモリ使用量

Framework / Memory Usage (mean, megabytes per request) [lessis better]Memory Usage(MB)ZendSymfonyYiiLaravelKohanaCodeIgniterFuelPhalcon0.40.81.21.62.0
Kohana

参考

 

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を高速化する為に利用できます。是非、利用してみて下さい。

投稿者: yohgaki

コメントは受け付けていません。