これは、次の 2 つの方法で行うことができます。
- 一般的なミドルウェア プロバイダー内にミドルウェアを登録する
- パッケージ サービス プロバイダー内にミドルウェアを登録する
最初create
に src パッケージ フォルダー内の TestMiddleware.php ファイルを試して、どこかに配置します。私の場合は、Middle-ware
フォルダー内に配置してから、composer.json オートローダーに次のように追加します。
"autoload": {
"psr-4": {
"Vendor\\Package\\Middleware": "packages/Vendor/Package/src/Middleware"
}
}
そして、一般的なミドルウェアを書きます:
namespace Vendor\Package\Middleware;
class TestMiddleware {
public function handle( $request, Closure $next ) {
echo 'hello, world!';
}
}
次に、ミドルウェアをメイン プロジェクトのミドルウェアに追加します。Lumen では、次のように追加する必要があります。
$app->middleware([
Vendor\Package\Middleware\TestMiddleware::class
]);
パッケージ サービス プロバイダーにミドルウェアを追加する
2 番目の方法では、ミドルウェアを作成し、最後の例のようにオートローダーにロードしてから、サービス プロバイダーを作成し、ミドルウェアを boot メソッド内に登録します。
public function boot()
{
$this->app->middleware([
\Vendor\Package\Middleware\TestMiddleware::class
]);
}
最後に、サービス プロバイダーをメイン プロジェクト内に登録する必要があります (Lumen の例)。
$app->register(Vendor\Package\TestServiceProvider::class);