技術情報

PHPフレームワーク「Phalcon」とは

PHPWebアプリケーションフレームワーク「Phalcon」について紹介します。

概要

「Phalcon」とは

Phalconは、フルスタック高速PHPフレームワークです。非常に高速に動作し、他のフレームワークを圧倒する「最速PHPフレームワーク」とされています。

フレームワーク内部はC言語(Ver2.0からZephir)で実装されていて、PHPエクステンションとして動作します。

基本説明

Phalconは、PHPクラスとして実装されているため、C言語(Zephir)を覚えたり使用する必要はありません。 通常通り、PHPでフレームワークを継承/利用してコードを書いていく形になります。

Phalconは疎結合になっているため、アプリケーションの必要に応じて、オブジェクトをコンポーネントとして利用できます。

ポイント

・圧倒的高速性能
MVCフレームワーク

・シンプル
Windows/Linux/Unix/Mac 対応

・親しみやすいテンプレートエンジン「Volt」
NoSQLと相性が良い

・便利なscaffoldのGUIツール
Dependency Injection(DI)

 

主な特徴

最速フレームワーク

高速動作のポイントは、フレームワークコア部分が、ひとつのPHP機能拡張としてC言語(Zephir)で実装されている点です。そのため、PHP文法解析/オペコード変換処理が不要となり、圧倒的な高速性能を誇ります。

Phalcon公式ベンチマークとして発表されている通り、Phalconは、他の一般的なPHPフレームワークが追随できないほどの実行速度があります。req/secで、2倍~7倍程度高速となっています。

高速とされていた「CodeIgniter」の2倍の高速性能があり、「CakePHP3」と比較すると6倍以上高速となっています。

Phalconが提供する機能(ORマッパーなど)を積極的に利用することで、さらなるパフォーマンス最適化を図れます。

省メモリ

拡張として読み込んでいるため、PHPをコアファイルとして読み込んでいる他フレームワークと比べると、省メモリ性能が優れています。

3つのプロジェクトタイプ

Phalconでは、3つのプロジェクトタイプ(テンプレート)が用意されています。「Micro」、「Simple(Single-module)」、「Module(Multi-module)」です。

3タイプにより、読み込むクラスなどが異なり、プロジェクト/アプリケーション規模などに応じて選択できるようになっています。簡単な「REST API」作成の場合は「Micro」、単一モジュール作成の場合は「Simple」、将来的に拡張が見込まれる場合は「Module」といったような使い分けができます。「Micro」が、最も高速に動作するとされています。

DI設計

PhalconのDIは、DIクラスを実装し、それに機能をすべて登録して利用する形式になっています。主要なクラスはすべてインターフェースをimplementsしており、DIを軸に各種の機能を呼び出すことで、各クラス間の依存を可能な限り小さくする方針を取っています。

コンポーネントに対して疎結合であるため、依存が弱く、テストもしやすくなっています。各コンポーネントはDIオブジェクトでキー名を通してアクセスするのみなので、DIオブジェクトに注入するオブジェクトを変えれば、簡単にコンポーネントへの依存を変更できます。

index.phpを見れば、利用しているコンポーネントをすべて把握できます。長期的に見て保守性が優れています。

公式ドキュメントが親切

公式ドキュメント/フォーラムなどは、非常に親切に書かれています。しかし、ほとんどが英語で、まだ日本語ドキュメントは充実してはいない状況です。

 

まとめ

Phalconは、最速PHPフレームワークとして大きな注目を集めています。まだ、成長中のフレームワークであるため、他のフレームワークよりは完成度がやや低めという面もありますが、それを上回る圧倒的な高速性は大きな魅力です。

PHP開発で処理速度を求められるような場合は、非常に有力な候補となります。

 

CakePHPを使ったオフショア開発は、こちらへ

About the author: matsumoto