技術情報

PHPフレームワーク「Slim」とは

PHPWebアプリケーションフレームワーク「Slim」について紹介します。

Slimを使ったオフショア開発は、こちらへ

概要

「Slim」とは

Slim(スリム)とは、PHPのオープンソースマイクロフレームワークです。

『Slim is a PHP micro framework』と表しているとおりに、「micro」であることを意識して作られたフレームワークです。

フレームワーク習得のためのコストは最低限で、シンプルなPHPWebアプリケーション/API開発に適しています。

「マイクロフレームワーク」とは

「CakePHP」のような「フルスタックフレームワーク」に対して、シンプル構成フレームワークのことを「マイクロフレームワーク」といいます。

シンプルであるために機能をそぎ落としているため、機能は最低限しか用意されていませんが、インストールコストが低く容量も小さくてすみます。

小規模Webアプリケーション開発には、フルスタックフレームワークの多くの機能は必要とされません。マイクロフレームワークは、フルスタックフレームワークの「パフォーマンスオーバーヘッド問題」や「習得の困難さ」がなく、迅速でシンプルな「Webアプリケーション開発」と「プロトタイピング」を実現できます。

小規模Webアプリケーション開発、アジャイル開発、ラピッドプロトタイピングなどにおいて、力を発揮できるフレームワークです。

シンプルであるがゆえに、中規模~大規模アプリケーション開発には向いていません。また、複数機能をまとめるような複雑なシステム構築にも向いていません。

「Slim」基本説明

Slimは、「REST API」を作成するための強力かつ拡張可能なフレームワークです。Rubyにおける軽量フレームワーク「Sinatra」に該当します。

機能は、フロントコントローラにフォーカスしているため、「モデル/DBへのアクセス機能」のような部分は省略されています。

マイクロフレームワークと言いながらも、Webアプリケーションとして主に利用する多くの機能は標準で搭載されています。高度な「URLルータ」、「ページテンプレート」「フラッシュメッセージ」「暗号化Cookie」「ミドルウェアサポート」などの機能も用意されています。

「URL突き合わせ機能」と「URLルーティング機能」は、「軽量API」と「各種HTTPメソッドサポート」と一体となることにより、迅速なAPIプロトタイピング/実装を実現します。

利用するだけであればモデル設計も不要なため、仮に途中で実装方針が変わった場合でも柔軟に対応できます。足りない機能は自分で補っていくスタイルです。

「Webアプリケーションプロトタイプ作成」、「サンプルCRUDフロントエンド作成」、「基本的なREST API機能」、「APIをトリガーとする単機能/少機能のツール作成」などに適しています。

Slimはシンプルであるため、ごく簡単に理解して使用できる上に、ドキュメントも充実しており、開発者コミュニティーも活発に活動しています。

 

主な特徴

ルーティング

Slimは、HTTPメソッド(GET、POST、PUT、DELETE、OPTIONSなど)と、pathを組み合わせてルーティングを行います。

これによって、RESTアーキテクチャに沿ったURLの設計/実装が簡単に実現できます。

マッピング

基本的なHTTPメソッドは、各HTTPメソッドと同名のメソッドに対してURIとcallbackを渡すことでマッピングします。URIに値を含めることもでき、その値はコールバックの引数として渡されます。

リクエストパラメータ

GETメソッドのパラメータは変数を指定することで、プログラム内で利用可能です。

HTTPメソッドオーバーライド

HTMLフォームのmethodアトリビュートは、GET/POSTにしか対応していないため、Slimアプリケーション内でPUT/DELETEなどに変更する必要があります。これは、他のフレームワークと同じように、_METHODパラメータを使って対応できます。

レスポンス

Twig/Smartyを使ったテンプレートからの出力や、JSON出力を行うためのAPIが用意されています。

 

まとめ

Slimは、シンプルで使いやすくあることを追求しており、アジャイル開発の分野などでの開発効率を大幅に高めてくれるフレームワークです。

 

Slimを使ったオフショア開発は、こちらへ

About the author: matsumoto