この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
更新日時:2026-06-10 06:57:13
タイトル: Slim
SlimはPHP向けのマイクロフレームワークです。REST API / 小規模Webサービスを最小限の設定で構築するのに向いており、Laravel や Symfony と比べてかなり軽量です。
Slimの特徴
- マイクロフレームワーク — ルーティング・ミドルウェア・依存注入の最小セット
- PSR準拠 — PSR-7(HTTPメッセージ)/PSR-15(ミドルウェア)/PSR-11(DI)に対応
- 軽量・高速 — リクエスト処理のオーバーヘッドが小さい
- API向け — JSONを返すREST APIの記述が直感的
- composer導入 — 数行のコードで起動
導入の最小例
|
$ mkdir my-api && cd my-api
$ composer require slim/slim:"^4"
$ composer require slim/psr7
|
最小のHello World
|
// public/index.php
require __DIR__ . '/../vendor/autoload.php';
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
$app = AppFactory::create();
$app->get('/hello/{name}', function (Request $req, Response $res, array $args) {
$res->getBody()->write("Hello, " . $args['name']);
return $res;
});
$app->run();
|
起動方法
|
$ php -S localhost:8080 -t public
# ブラウザで http://localhost:8080/hello/world にアクセス
|
主な機能
| 機能 | 説明 |
| ルーティング | HTTPメソッド + URLパターンでハンドラ登録 |
| ミドルウェア | 認証・ロギング・CORS等をリクエスト前後に挟む |
| DI Container | PSR-11対応のコンテナでサービス注入 |
| レスポンス組み立て | PSR-7のResponseオブジェクト |
| エラーハンドリング | 例外をJSONエラーレスポンス等に変換 |
JSONレスポンスの返し方
|
$app->get('/users', function (Request $req, Response $res) {
$data = [['id' => 1, 'name' => 'Taro']];
$res->getBody()->write(json_encode($data));
return $res->withHeader('Content-Type', 'application/json');
});
|
他のPHPフレームワークとの比較
| フレームワーク | 向く用途 |
| Slim | REST API、マイクロサービス、軽量Webアプリ |
| Laravel | 大規模Webアプリ、フルスタック |
| Symfony | 大規模・堅牢、コンポーネント志向 |
| CodeIgniter | 小〜中規模、学習用 |
注意点
- 機能は最小限。ORM、認証、メール等は別途composerで追加(例:Eloquent、Doctrine、Twig等)
- Slim 3 と Slim 4 で API が変わっている。古い記事のサンプルは要注意
- 大規模化したらLaravel等への移行も検討
関連