slim.gif


1度使うと2度とそれ無しの生活に戻れない、それがフレームワーク。

PHPで代表的なフレームワークと言えば、「Zend Framework」とか「Symfony」とか「CakePHP」とか「FuelPHP」とか。最近だと「Laravel」というフレームワークが人気のようです。

2014年 Webアプリケーションフレームワークトレンド(PHP / Java / Ruby / Python / Perl) - Qiita

これらはサービスを提供するのに必要な機能がすべて揃っている、いわゆる「フルスタック」というやつで、それさえ入れればすべて解決する(自分で何かを開発する必要は無い)一方で、インストールするにはある程度の知識と権限が必要。また少しツールを作りたいとか、小さいサービスを作りたいだけとか言った場合には、使わない機能が多すぎて逆にコストが高くなってしまいます。


で、最近流行ってるのは機能は最低限しかないけれども、インストールするコストが低く容量も小さいいわゆる「マイクロフレームワーク」というもの。代表例は「Slim」とか「Silex」とか「Limonade」とか。

今携わっているお仕事は基本「Webデザイナー」なので、がっつりプログラミングすることは少ないのですが、それでも「APIを叩いて業務を効率化したい」みたいな欲求はあるわけで、ローカルに仮想サーバ立ててコーディングしてみたいなこともやっています。でもWebサービスとして大々的に公開するものでは無いので、フレームワークとしては機能も拡張性も最低限でいい。なにより、会社が借りているロリポップ(しかも下から2番目のプランでSSHは使えないし、MySQLは1つしかデータベースを作成出来ない)では、フルスタックのフレームワークを入れるのはなかなかに困難。

というわけで、その場がしのげればいいやと思ってマイクロフレームワークである「Slim」を入れてみたらば、これがなかなか面白くて今やってる仕事の規模ならまあ許せる範囲の機能だったので、軽くだけ紹介しようかと。


インストール

composerを使ってインストールするのが定番ですが、

Slim php フレームワークの使い方 - それマグで!

ソースをダウンロードしてきて解凍して配置しても問題ありません。

Hello Slim! - Qiita

なぜなら、配置を自動化しなければいけないほどソースが多くないので。Slimディレクトリ以下のライブラリが参照出来、index.phpへのアクセスを.htaccessで制御出来れば、それらをどこに置いても問題なく動きます。(Slimとindex.phpが同じディレクトリでなくてもいい)



簡単な使い方

ライブラリを参照し、HTTPメソッドをindex.phpに書いて実行する。それだけ。


もしテンプレートファイルを使いたければ、テンプレートを置く場所を引数として与えてやればOK。



Viewを分けたりといったことも出来ますが、基本的には色んな処理をindex.phpにひたすら記述していくみたいなことになりかねませんし、、複雑なことをやるのには向いてません。でも逆に言えば、ルーティング出来ればいいっていう程度のことならば、これで十分です。ORMと組み合わせるとより捗るかも知れません。

PHPでちょっとしたものを作るときに便利な軽量フレームワークと軽量ORM - 書き置き。

あ、これ試してみよう。



簡単なまとめ

  • APIを叩いて表示するなど単機能ないしは少機能のツール作成にぴったり
  • 足りない機能は自分で補っていくスタイル
  • 複数の機能をまとめるような、複雑なシステムの構築には向いていません


テスト周りもこんな感じでやってる人がいました。

slimでphpunit使用してユニットテスト - taka512's blog

なるほど。


個人で何か作るのにフルスタックのフレームワークなんか要らないなあ、というのが率直な感想です。いいね。


参考

Slim Framework v2

一応、ドキュメントです。最新版に追従出来ているかは怪しいところですが。

その他、参考にさせて頂いた記事一覧(順不同)。

Hello Slim! - Qiita
PHPマイクロフレームワークのSlimがなかなかいい感じ。 | 90zbear.com
php軽量フレームワークslimでちょっとしたアプリケーションを作る - Qiita
PHPでちょっとしたものを作るときに便利な軽量フレームワークと軽量ORM - 書き置き。
slimでphpunit使用してユニットテスト - taka512's blog