Phalconを使う前に知っておきたい、各機能とインストール方法

2014年5月30日(金)
廣瀬 一海

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を使うと、楽に環境構築ができるでしょう。

Microsoft Web Platform Installer(クリックで拡大)

参考までに筆者の構築環境を記載します。

プラットフォーム 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をダウンロードしてください。

Windows環境用のダウンロード画面(クリックで拡大)

[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の各種クラスやフレームワーク構造に触れます。

アイレット株式会社 cloudpack事業部 シニアソリューションアーキテクト

生業はインフラエンジニア。小規模から大規模なまで日々様々なインフラを構成しています。好きなクラウドはMicrosoft Azure、日頃の業務はAmazon Web Services、という感じにクラウド漬けの毎日を過ごしています。​
仕事の傍ら、勉強会やコミュニティ(日本Azureユーザー会)コアメンバとして活動しています、マイクロソフトのオープンソース戦略にとても共感し、Microsoft MVPとして情報発信や交流を行っています。
Microsoft MVP Microsoft Azure

cloudpack公式サイト:http://cloudpack.jp

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています