SilexとBlueTripを使ってサイトを作ってみた感想とか

先日、サイト構築を頼まれて製作してたものがオープンしました。
作業担当としては・・・・

* サイトレイアウト素案構築
* システム設計・実装
* HTML/CSSコーディング
* UI部分設計・実装

と、デザイン以外は担当した感じです。

今回のサイトに関してはCMS導入も考えたんですがDBが使えないという問題があり、
結果的にPHPマイクロフレームワークで最近少し名前が出てきた「Silex」を使って作りました。
今回はこのフレームワークなどを使ってみた感想をつらつらと書いておこうかと思います。

今回制作したサイトは以下となります。

で、実際に利用したOSS系のものは以下のとおり。

PHP フレームワーク
Silex
CSS ベースフレームワーク
BlueTrip
JavaScript ライブラリ

とりあえず、一人で作ってたんであんまり規約も要らないしさらにページ数もやたら少ない。
DB無くても動く、簡単フレームワークということでSymfony勉強会で教えてもらったSilexに白羽の矢が立ちました。

実際にSilexを使ってみた感想とハマったところ列挙していきます。

場所を選ばない設置スピードの速さは素晴らしい!

silexはpharファイルによる管理なので、設置してrequire_onceしてしまえば終わり!
というストレスフリーな感じがたまらなくいいです。

require_once __DIR__.'/silex.phar';

$app = new Silex\Application();

// TODO コントローラーの処理内容を定義する

$app->run();

また、Routing部分に関してもきちっとできてるのでRedirectとかも簡単に書けます。

//Ex: "/works/" にアクセスしたら"/works/2011/" をdefault表示にする
$app->get('/works/',function() use ($app){
	return $app->redirect('/works/2011/');
});

//Ex2: "/works_detail/{id}" 可変の$IDを受け取って処理をする
$app->get('/works_detail/{id}/', function($id) use($app){

	// ここに処理を記述...

})->assert('id','[^\/]*');

PHPファイルも分離できるので、私は大きめのページグループに区切ってファイルを分けています。

日本語ドキュメントがあるのが助かる!

いやまぁ英語読めろよと言われたらアレです、ごめんなさい。
でも、これだけしっかりとした日本語ドキュメントがあると助かります。
Symfony勉強会でSilexのことを発表してた@brtriverさんが管理しています。

.htaccessの設定にやたらハマった

はい、Apache周り弱いんですごめんなさいごめんなさい・・・。
ちゃんと設定しても動かないことがありまして、これは何だったんだろう・・・。
あ、ユーザーガイドに書いてある.htaccess設定でちゃんと動きます。

バージョンアップしたら動作が変わった

不用意にSilex本体のバージョンアップを開発佳境に入ったところで行なったら
SilexのExtension部分が若干変わってエラーした為、動作しなくなり焦りました。
TwigExtensionを使っていたんですが、最新のSilexではこう書くことで使えるようになります。

$app->register(new Silex\Provider\TwigServiceProvider(), array(
	'twig.path'       => __DIR__.'/views',
	'twig.class_path' => __DIR__.'/vendor/twig/lib',
));

とりあえず、小規模サイトやなんか簡単なAPIサーバーなどを作るなら
このぐらいのフレームワークが便利じゃないですかねー。

小規模サイトは作ること割とあるので、これからも使うことありそうです。
みんなもSilex使ってみるといいんじゃないかな!