53
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Hello Slim!

Last updated at Posted at 2012-04-23

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の行をコメントアウトする必要があります。

.htaccess
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フレームワーク祭り」の発表内容を整理したものです。

53
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?