爆速フレームワーク!! Phalcon PHP Framework

お久しぶりです。<br>
~~とあるゲーム会社で、お仕事を始めました。~~
_※とあるゲーム会社でお仕事していた頃の記事です。_

私事ですが、組み込み業界から飛び出て 1年半、<br>
やっとたどり着いたこの素敵なチームで、技術がっつり手に入れていきます。


さて、さて。

今回ご紹介するのは、私たちが採用している **爆速** のフレームワーク！

**Phalcon PHP Framework**

技術陣全員が口をそろえてこう言います。

「web フレームワークの集大成だ…！」

そんな Phalcon .
われらが Phalcon !

手始めに、概要をまとめてみました。
ぜひご覧ください～ ('◇')ゞ

Prologue
=======================

さて、今回ご紹介するのは、私たちが採用している **爆速** のフレームワークです！

**[Phalcon PHP Framework](http://phalconphp.com/)**

技術陣全員が口をそろえてこう言います。

「web フレームワークの集大成だ…！」

そんな Phalcon についてご紹介します。<br>

----
Slideshare
--------------------

尚、slideshare にも同資料を掲載しておりますので、併せてご覧頂ければ幸いです。

[Meet ♡ Phalcon | slideshare](http://www.slideshare.net/dzeyelid/meet-phalcon)

----

Phalcon PHP Framework
=======================

Phalcon とは？
--------------------

- PHP の **爆速** フレームワーク
- 今までの MVC フレームワークの **集大成** のような出来！
 - 初心者でもわかりやすいシンプルなフレームワーク
 - Rails を経験していれば、さらにとっつきやすい
 - Windows, Linux/Unix/Mac 対応
 - 親しみやすいテンプレートエンジン Volt
 - NoSQL と相性が良い
 - 便利な scaffold のGUIツール あり


爆速 PHP フレームワーク
-------------------------

- 内側が C言語 で実装されている
 - PHPのエクステンションとして実装されている

![Phalcon-speedchart](http://www.rodeo.jp.net/wp-content/uploads/2013/07/phalcon-speedchart.png)

シンプルで柔軟な、集大成フレームワーク
-------------------------

- 単一/複数のMVCモジュールを扱える → [Full MVC applications](http://docs.phalconphp.com/en/latest/reference/applications.html)
- シンプルなREST API も実装しやすい → [Micro Applications](http://docs.phalconphp.com/en/latest/reference/micro.html)
- [DIコンテナ](http://docs.phalconphp.com/en/latest/reference/di.html) を利用できる
- Rails の経験を活かせる、さらに便利
 - Rails では gem で提供されていたページネイションなど、標準装備 → ex. [Pagination](http://docs.phalconphp.com/en/latest/reference/pagination.html)
- Twitter Bootstrap を利用
- シンプルな [Model](http://docs.phalconphp.com/en/latest/reference/models.html)
- NoSQL と相性が良い → [ODM (Object-Document Mapper)](http://docs.phalconphp.com/en/latest/reference/odm.html)
- 使いやすいテンプレートエンジン [Volt](http://docs.phalconphp.com/en/latest/reference/volt.html)
- 便利な scaffold の GUIツール あり → [Developer Tools](http://docs.phalconphp.com/en/latest/reference/tools.html)


テンプレートエンジン Volt
---------------------------------

- シンタックス
 - {% ... %} : PHPのステートメントとして置き換えられる
 - {{ ... }} : <? echo … ; ?> として置き換えられる
- これは、既存のフレームワークでも **よく採用されている** シンタックス
 - インスパイアを受けた Python の テンプレートエンジン Jinja
 - Symfony のテンプレートエンジンも同じようなシンタックス
- **気配り** が効いていて、使って気持ちがいい


ODM for MongoDB
------------------------------------

- ODM = Object-Document Mapper
 - ドキュメントをオブジェクトに変換するマッパー
- Collection クラスをオーバーライドすることで、Model クラスと同様に **NoSQL のデータを扱える**
- **CRUD** (Create, Read, Update, Delete)
 - find(), save(), delete()
- find() で利用できるパラメータ
 - conditions, fields, sort, limit, skip 
- validate() で利用できるパラメータ
 - Email, ExclusionIn, InclusionIn, Numericality, Regex, StringLength

  ![ODM for MongoDB](http://www.rodeo.jp.net/wp-content/uploads/2013/07/phalcon-odm.png)  

Phalcon Development Tools
------------------------------------------

- Controllers
 - Controller の名前を入力して生成
- Models
 - 指定した Model を生成（全テーブルも指定可能）
- Scaffold
 - 指定したテーブルから Model, View, Controller を生成
- Migrations
 - テーブル単位でマイグレーション可能

![Phalcon Development Tools](http://www.rodeo.jp.net/wp-content/uploads/2013/07/phalcon-devtools.png)

さいごに
-----------------------------------

Phalcon PHP Framework は、[new BSD license](https://github.com/phalcon/cphalcon/blob/master/docs/LICENSE.md) に基づきリリースされています。

尚、本資料における Phalcon からの引用、および画像については、 [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/) に基づき、使用しています。


-----------

Epilogue
==========================

このフレームワークを使って、お仕事したい方は！

**[RODEO.inc](http://www.rodeo.jp.net/)** で一緒に作りませんか！
お待ちしております！ ヾ(・ω・)ﾉ

----

以上です、読んでくださってありがとうございました！