PHP
slim

Hello Slim!

More than 5 years have passed since last update.

SlimはPHPで作られた比較的新しいフレームワークです。「マイクロフレームワーク」のひとつで、SynfonyやCakePHPなどのフルスタックのものとは異なり、非常にシンプルな構成になっています。機能も、フロントコントローラにフォーカスしているので、モデルやDBへのアクセスといった部分はごっそり省略されています。まさに「Slim」です。


Let's start!

何はともあれ、まずはサンプルを作成してみましょう。

GitHubのmasterブランチからSlimをダウンロードして、ZIPファイルを解凍します。ここでは、


  • .htaccess

  • js/

  • css/

  • php/


    • index.php

    • Slim/



みたいな感じで、ファイルを配置します。(配置の仕方に特に決まりはないので、各人の好みで変えてしまってOKです)

.htaccessで、ファイルが存在しない場合にすべてをphp/index.phpに渡すよう設定しています。※Webサーバの設定によっては、RewriteBaseの行をコメントアウトする必要があります。

RewriteEngine On

# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ php/index.php [QSA,L]

それでは、下準備が完了したので、お決まりの「Hello World」をやってみましょう。php/index.phpに次のように書きます。


php/index.php

<?php

require 'Slim/Slim.php'; //ライブラリの読み込み
$app = new Slim(); //インスタンスを初期化
$app->get('/hello/:world', function ($world) { //ルーティング設定
echo "Hello $world! (GET version)";
});
$app->run(); //実行

ブラウザから、http://<ホスト名>/hello/slim にアクセスしてみましょう。画面に


Hello slim! (GET version)


と表示されていたらOKです。


Slimでルーティング

Slimでは、

$app->get('/path/to/:variable', some_function);

の形式でルーティングの設定が可能です。":variable"の部分は、関数に変数として渡されます。それぞれのメソッドに合わせて関数が用意されています。


  • GETメソッド : $app->get()

  • POSTメソッド : $app->post()

  • PUTメソッド : $app->put()

  • DELETEメソッド : $app->delete()

また、SlimはPHP5.3以降で無名関数を使って書くと非常に読みやすいコードになります。

$app->get('/path/to/:variable', function ($variable) {

//ここに処理を書く
});

無名関数の内部で、Slimのインスタンス($app)にアクセスする必要がある場合は、次のように書く事もできます。

$app->get('/path/to/:variable', function ($variable) use ($app) {

$name = $app->request()->params('name'); //リクエスト変数を取得
//ここに処理を書く
});

(つづく)

この記事は、4/18(水)に開催された「軽量WEBフレームワーク祭り」の発表内容を整理したものです。