Phalconを使う前に知っておきたい、各機能とインストール方法
Phalconフレームワークの機能
機能が豊富なため、すべてを詳細にご紹介できませんが、ここではフレームワークの骨子となる機能について簡単にご紹介します。
Phalconで開発できるアプリケーション
- Single-Module(単一のMVC Webアプリケーション)
- Multi-Module(複数MVC Webアプリケーション)
- Micro Applications(REST APIの開発に最適なシンプルなアプリケーション)
- Command line Applications (CLIからコマンド実行可能なアプリケーション)
Event Manager
コントローラーのアクションがコールされる直前やResponseをブラウザへ出力する直前など、PhalconのDispatcher LoopやDBにアクセスするコネクションリスナなどには「フックポイント」となるイベントが予め定義されています。
これを活用して、出力の前に文字エンコードを一括で変更するフィルタなどの実装も可能です。
クラスローダ
Phalcon以外の追加PHPクラスを設定に応じて自動でロードします、composerやPEARなどのクラスを指定すれば、面倒なincludeやrequireを行うこと無く、PhalconからもPHPクラスを扱うことができます。
DIコンテナ/Service Location
オブジェクト間の依存関係を記述しておくことで、依存関係の管理をDIコンテナに移譲することができるようになります。
ORM
- データベースとオブジェクトをマッピングし、オブジェクトを通じてデータベースにアクセス
- Phalcon Query Language ()で直接クエリを記述することも可能
- データベースクエリのバリデーション、トランザクションなど
ODM
Object Document Mapper(オブジェクトドキュメントマッパー)でKVSに格納するドキュメントとオブジェクトをマッピングし、オブジェクトを通してKVSアクセスを行います。現在はMongoDBのみ対応しています。
テンプレートエンジン
- テンプレートエンジン volt
JinjaやTwigに記法の似たテンプレートエンジン
Dev ToolsとWeb Tools
- DBからORMのエンティティや簡単なCRUDコードの生成
- Phalcon拡張のクラスのStubによるクラス名の補完
PhpStorm / NetBeans IDE / Eclipse + PDTなどのインクルードパスに指定することでクラス名やメソッドの補完が可能になります。
インストールと環境構築
WebサーバーとPHP5.3.11以降の環境は、既に準備されているものとします(それ以前のバージョンはメモリーリークを起こすバグが確認されており、推奨されていません)。
Windowsの場合はWeb Platform InstallerやXAMPP/WAMPを使うと、楽に環境構築ができるでしょう。
参考までに筆者の構築環境を記載します。
プラットフォーム | Webサーバー | 動作環境 |
---|---|---|
Windows 2012 R2 | IIS 8.5 | PHP 5.5 FastCGI 32bit |
Ubuntu Server 12.04 LTS | nginx | PHP5.5 PHP-FPM 32bit |
Windows 環境
Windows環境向けには、ビルド済みバイナリが配布されています。phpinfo関数を使い、現在のPHPのバージョンとThread safe / Non thread safe(NTS)やビルドしたVCのバージョンを確認し、適切なDLLをダウンロードしてください。
[PHPのインストール先]\extにphp_phalcon.dllをコピーしてください。
コピーした後、php.iniに以下の記述を追記します。
extension=php_phalcon.dll
Linux 環境
PHPをビルド、拡張をコンパイルできる環境は既に導入されているものとします。パッケージなどで導入している場合は、php-devパッケージやphp-develパッケージなどを導入し、phpizeを実行可能にしてください。
$ git clone git://github.com/phalcon/cphalcon.git $ cd cphalcon/build $ sudo ./install
インストール後にphp.iniに以下の記述を追記します。
extension=php_phalcon.so
Vagrantを使った環境構築
Phalconのダウンロードサイトには、Vagrantを使った環境構築方法も紹介されていますので、是非チャレンジしてみてください。
追加の作業
Phalconは、使う機能によって他のPHPエクステンションを必要とします。
以下に記載するPHPエクステンションを一緒に導入することをお勧めします。
- memcache拡張もしくはmamcached拡張
- PDO拡張
- pdo_mysql拡張
Dev Tools Web Toolsの準備
Phalconの導入は以上ですが、より開発を便利に進めるためDev Toolの準備をします。
CLI(bashやコマンドプロンプト)でphpを実行できる必要がありますので、環境変数PATHを設定することをお勧めします。
ドキュメントではcomposerやPEARを使ったインストール方法が紹介されていますが、ここでは直接githubからcloneするか、ダウンロード後ZIPを展開してください。
$ git clone https://github.com/phalcon/phalcon-devtools.git
次回は
次回ではDev Toolsからプロジェクトのひな形を生成し、実際にサンプルアプリケーションを開発しながらPhalconの各種クラスやフレームワーク構造に触れます。