WordPressで色々作ると楽だけど、そこまで機能いらないよ・・・。だとか、CakePHPは覚えるの大変すぎて・・・。とかっていう話はちょこちょこあるのではないかと思います!

そこで、以前下北沢OSSカフェの河村さんからオススメ頂いた、PHPマイクロフレームワークのSlimを試してみました!

Slimである意味

イマドキのモダンでイケてるシステム会社さんなんかだと、herokuだったりAWSだったり、PaaSやらSaaSを使っている事も多いと思います。とはいえ、以下のような状況を抱えている人も結構いるのではないでしょうか。

  • 専用サーバやVPSを運用しているので、そこを有効活用したほうが色々とコストがかからない。
  • 黒い画面から色々インストールするのが怖すぎて泣きたい。
  • 知識のあるサーバ管理者がいないので、さくらやhetemlなどの容量大きめプランのホスティングサービスを使っている。
  • そもそもSSHが許可されていないので、コンソールからインストールとか起動ができない。
  • 上司の意見により根本的にPaaSやSaaSの利用ができない。

などなど、こんな状況の人でも使えるフレームワークです。ざっくりな動作環境で言えば・・・

  • PHPが動く
  • .htaccessで、mod_rewriteが使える
  • データベースを使いたいならmySQLが使える

これだけ!どうです?素敵でしょ!

Slimを使ってみよう!

インストールからHello World

このまんますぐできちゃう河村さんがQiitaに投稿した記事があるのであえて書かないっす!

DLしたファイルを解凍して、動作する場所にそのまま配置すれば動きます。基本的には。

アクセスされたURLにファイルがなければ.htaccessでindex.phpにリダイレクトさせつつ、初期設定で読み込んだライブラリを使いつつ動くよ!っていうイメージ。

テンプレート

こんな感じでテンプレートディレクトリへのパスを通して

$app = new SlimSlim(array(
		"templates.path" => "templates"
	));

tenplatesディレクトリと、テンプレート用のPHPを書いて

$app->get('/' , function () use($app){
	$app->render("index.php");
});

こんな感じでテンプレートを呼び出せます。

GETの処理

こんな感じで「:変数名」が「$変数名」として呼び出せます!

http://hogehoge/fugaだったら、fugaが$idになる感じですね。

$app->get('/:id' , function ($id) use($app){
	echo $id;
});

似たような感じでpostも処理できます!

実際に触ってみた感想

ルーティングとセッション渡す事だけを考えれば凄く楽ができると思いました。

とはいえ、基本的にはPHPをゴリゴリと書いていく感じなので、PHPができなければそれなりに学習コストは必要ですね。

と、そんなわけで、実験がてら何かができたら公開しようと思います!