Phalconでマイクロフレームワーク

久しぶりにPHPのエクステンションで書かれた超高速フレームワークPhalconを見たら

  • 公式ページが見やすくなってた
  • バージョンが1.0.0になってた
  • annotationリーダーのライブラリができてた(そしてPhlconで使える)
  • Microというクラスがあり、マイクロフレームワーク風に書けるようになってた

と、相変わらず斜め上まっしぐらな感じがします。

マイクロフレームワークはルーティングだけ欲しいのなら選択肢としてありなきがします。
Phalconのことだからオーバーヘッドも少ないでしょうし。

というわけでGWで遊んでみたい人のためのやってみよう記事。

Phalconをインストール

たぶん一番難しいのはここだけ。

自分はmacのローカルに入れたので、以下のコマンドをぽちぽちたたいた。

$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ sudo ./install

実際は複数のPHPのバージョンを入れている関係でinstallファイルに書かれているphpizeのパスを変更したり、--with-php-configの指定を変更して実行

コントローラーファイルを書く

requireなんていりません。だってPhalconだから。

<?php
$app = new Phalcon\Mvc\Micro();

$app->get('/', function () {
        echo "<h1>Welcome!</h1>";
    });

$app->get('/say/welcome/{name}', function ($name) {
        echo "<h1>Welcome $name!</h1>";
    });

$app->handle();

すっきり。

組み込みサーバーを立ち上げる

PHP5.4だよね?アプリケーションを書いたディレクトリで以下を実行

$php -S localhost:9999 

アクセスしてみる

ブラウザから以下のようなURLでアクセス。htaccessとか書いてないので、パスは_urlパラメータとして渡すのがコツ。

http://localhost:9999/index.php?_url=/say/welcome/brtriver

これは遊べそう。

マイクロな使い方のドキュメントは以下を参照。サンプルコードが多いからたぶん難しくないと思う。

さくらインターネットとかどこかのレンサパさん!
Phalconを標準で組み込んだPHPを使えるようにすると大ヒットするかもしれません。

まとめ

本当は BEAR.SundayルーターとしてPhalconを使えるようにしようとして久しぶりに見たのがきっかけだったり。腰据えてするならBEAR.Sundayのほうが面白いと思う。

あと、Silexの1.0がリリースされました。

5.3/5.4/5.5 どのバージョンでも動作します。また、5.4以上だとtraitで実装された機能も使えます。
これも要チェックです。