カテゴリー
技術

Twitto: PHP5.3専用最小新フレームワーク

Twittoは、PHPフレームワークsymfonyの中心人物Fabien Potencierさんが(冗談で)作った、新フレームワークだ。 実アプリに決して使わないこと!!! フレームワークのコードは、twitterの一メ […]

Twittoは、PHPフレームワークsymfonyの中心人物Fabien Potencierさんが(冗談で)作った、新フレームワークだ。

実アプリに決して使わないこと!!!

フレームワークのコードは、twitterの一メッセージに収まるように、140文字以内で書かれている。(twitterでつぶやきたければ改行を取ればいい)

require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
  throw new Exception('Error');
$c();

サイズ以外の特徴は、デフォルトコントローラのサポート、E_STRICT(PHP5から導入された、より厳しいエラーチェック)に完全対応、存在しないコントローラへのアクセスでちゃんとエラーを出すこと、などだ。

同じフォルダに置いたc.phpにコントローラ関数を定義すれば、パラメータ経由でそのコントローラが呼び出される。

ジョークではあるけど、「PHP5.3専用」とあるだけあって、PHP5.3で新しく入った機能を活用している。

一つは新しい定数 __DIR__ の利用。これは、従来 dirname(__FILE__) と書いていたものを、より簡単に書けるPHP5.3からの機能。

二つ目は新演算子”?:”の利用。これは、この演算子の左右にある二つの式について、空じゃない方を採用するという演算子。上記フレームワーク内では、$cが空だったら右が評価されるのでデフォルトコントローラが呼ばれる。

また、デフォルトコントローラはPHP5.3の無名関数(anonymous function)を使っている。