この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時: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 ContainerPSR-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フレームワークとの比較

フレームワーク向く用途
SlimREST API、マイクロサービス、軽量Webアプリ
Laravel大規模Webアプリ、フルスタック
Symfony大規模・堅牢、コンポーネント志向
CodeIgniter小〜中規模、学習用

注意点

  • 機能は最小限。ORM、認証、メール等は別途composerで追加(例:Eloquent、Doctrine、Twig等)
  • Slim 3 と Slim 4 で API が変わっている。古い記事のサンプルは要注意
  • 大規模化したらLaravel等への移行も検討

関連