Slim

Laravelを採用したシステムを開発した件は別記事で説明済みですが、今回はマイクロフレームワークSlimを使ったシステム開発について紹介します。

Laravel ではなく Slim を使用した理由は次の通りです。

  • ターゲットとなるサーバーの仕様が若干古く、Laravel の最新バージョンを使用できない
  • 他のサイトと同居させる環境で Laravel がインストールできるかどうか確信を持てない
  • 現行システムからの乗り換えとなり、データベース設計が Laravel 向きではなかった(複合主キーあり)
  • システム規模が小さく、Eloquent のような O/R マッパーがなくても、PDO で問題なく実装できる
  • 当方が必要とする機能がコンパクトにまとまっている

下記機能を使用しました。

  • ルーティング機能
  • DI 機能
  • コントローラーをサポートする機能、RequestResponse
  • 権限弁別の為 Middleware を補助的に使用

当初はフレームワークなしで開発しようと思っていたのですが、上記機能を一つ一つインストールするよりもコンパクトなフレームワークがよいと思い直し、Slim にたどり着いたのです。

使ってみて次のように思いました。

  • 機能が小さいので学習コストが小さい。
  • Eloquent では ActiveRecord によるを記述が強制されるが、Slim ではそもそも O/Rマッパーがないためそのような制約はなく、素直にドメイン層とデータアクセス層の分離して記述できた
  • 実行に必要なコードが 10MByte 程度、前回紹介した Laravel によるシステムでは 120MByte なのでサイズは 1/12、但しシステム規模が違うので単純に比較できない

Slim での開発を終えて、DI 機能に若干の不満点はありましたが、全体としては実装が面倒な部分を肩代わりしてくれて助かった印象を持ちました。

また、今年に入ってドメインロジックの多くをクライアントサイドに記述するスタイルに移行しているので、フレームワークを変更する負担はあまり大きくなかったです。

参照