Slim 4 ドキュメント

このドキュメントは **Slim 4** 用です。 Slim 3 ドキュメント をお探しですか?

ようこそ

Slim は、シンプルながらも強力なウェブアプリケーションや API を迅速に作成できる PHP マイクロフレームワークです。Slim の中核は、HTTP リクエストを受け取り、適切なコールバックルーチンを呼び出し、HTTP レスポンスを返すディスパッチャーです。それだけのことです。

ポイントは?

Slim は、データの消費、再利用、または公開を行う API を作成するための理想的なツールです。Slim は、迅速なプロトタイピングにも最適なツールです。実際、ユーザーインターフェースを備えたフル機能のウェブアプリケーションを構築することもできます。さらに重要なのは、Slim は非常に高速で、コード量が非常に少ないことです。

Slim の中核は、HTTP リクエストを受け取り、適切なコールバックルーチンを呼び出し、HTTP レスポンスを返すディスパッチャーです。それだけのことです。

SymfonyLaravel などのキッチンスインクソリューションは必ずしも必要ありません。これらは確かに優れたツールですが、多くの場合、オーバースペックです。代わりに、Slim は必要なものだけを提供し、それ以上何も提供しません。

仕組みは?

まず、Nginx や Apache のようなウェブサーバーが必要です。適切なリクエストを 1 つの「フロントコントローラー」PHP ファイルに送信するように ウェブサーバーを構成する 必要があります。この PHP ファイルで Slim アプリケーションをインスタンス化して実行します。

Slim アプリケーションには、特定の HTTP リクエストに応答するルートが含まれています。各ルートはコールバックを呼び出し、HTTP レスポンスを返します。開始するには、まず Slim アプリケーションをインスタンス化して構成します。次に、アプリケーションルートを定義します。最後に、Slim アプリケーションを実行します。非常に簡単です。サンプルアプリケーションを以下に示します。

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

require __DIR__ . '/../vendor/autoload.php';

/**
 * Instantiate App
 *
 * In order for the factory to work you need to ensure you have installed
 * a supported PSR-7 implementation of your choice e.g.: Slim PSR-7 and a supported
 * ServerRequest creator (included with Slim PSR-7)
 */
$app = AppFactory::create();

/**
  * The routing middleware should be added earlier than the ErrorMiddleware
  * Otherwise exceptions thrown from it will not be handled by the middleware
  */
$app->addRoutingMiddleware();

/**
 * Add Error Middleware
 *
 * @param bool                  $displayErrorDetails -> Should be set to false in production
 * @param bool                  $logErrors -> Parameter is passed to the default ErrorHandler
 * @param bool                  $logErrorDetails -> Display error details in error log
 * @param LoggerInterface|null  $logger -> Optional PSR-3 Logger  
 *
 * Note: This middleware should be added last. It will not handle any exceptions/errors
 * for middleware added after it.
 */
$errorMiddleware = $app->addErrorMiddleware(true, true, true);

// Define app routes
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});

// Run app
$app->run();
図 1:Slim アプリケーションの例

リクエストとレスポンス

Slim アプリケーションを構築する際には、多くの場合、リクエストオブジェクトとレスポンスオブジェクトを直接操作します。これらのオブジェクトは、ウェブサーバーによって受信された実際の HTTP リクエストと、クライアントに返される最終的な HTTP レスポンスを表します。

すべての Slim アプリケーションルートには、コールバックルーチンへの引数として、現在のリクエストオブジェクトとレスポンスオブジェクトが渡されます。これらのオブジェクトは、人気の PSR-7 インターフェースを実装しています。Slim アプリケーションルートは必要に応じてこれらのオブジェクトを検査または操作できます。最終的に、各 Slim アプリケーションルートは **必ず** PSR-7 レスポンスオブジェクトを返す **必要があります**。

独自のコンポーネントを使用する

Slim は、他の PHP コンポーネントとも連携するように設計されています。 Slim-CsrfSlim-HttpCache、または Slim-Flash など、Slim のデフォルト機能を基に構築された追加のファーストパーティコンポーネントを登録できます。 Packagist で見つけることができるサードパーティコンポーネントを統合することも簡単です。

このドキュメントの読み方

Slim を初めて使用する場合は、このドキュメントを最初から最後まで読むことをお勧めします。Slim に既に精通している場合は、適切なセクションに直接ジャンプできます。

このドキュメントでは、リクエストとレスポンスの処理、ルーティング、エラー処理などの具体的なトピックに移る前に、まず Slim の概念とアーキテクチャについて説明します。

ドキュメントライセンス

このウェブサイトとドキュメントは、クリエイティブコモンズ表示-非営利-改変禁止 4.0 国際ライセンス のもとでライセンスされています。
Creative Commons License