Laravel Folio
はじめに
Laravel Folio は、Laravelアプリケーション内のルーティングを簡素化するために設計された強力なページベースのルーターです。Laravel Folioを使用すると、resources/views/pages
ディレクトリ内にBladeテンプレートを作成するだけで、ルートの生成が簡単になります。
たとえば、/greeting
URLでアクセス可能なページを作成するには、アプリケーションのresources/views/pages
ディレクトリにgreeting.blade.php
ファイルを作成するだけです:
<div>
Hello World
</div>
インストール
まずは、Composerパッケージマネージャーを使用してプロジェクトにFolioをインストールしてください:
composer require laravel/folio
Folioをインストールした後は、folio:install
Artisanコマンドを実行することができます。これにより、Folioのサービスプロバイダーがアプリケーションに登録されます。このサービスプロバイダーは、Folioがルート/ページを検索するディレクトリを登録します:
php artisan folio:install
ページパス / URI
デフォルトでは、Folioはアプリケーションのresources/views/pages
ディレクトリからページを提供しますが、Folioサービスプロバイダーのboot
メソッドでこれらのディレクトリをカスタマイズするこ とができます。
たとえば、同じLaravelアプリケーション内で複数のFolioパスを指定することが便利な場合があります。アプリケーションの「管理者」エリア用に別のFolioページディレクトリを指定したい場合など、アプリケーションの他のページ用に別のディレクトリを使用したい場合があります。
これは、Folio::path
およびFolio::uri
メソッドを使用して実現できます。path
メソッドは、Folioが着信HTTPリクエストをルーティングする際にページをスキャンするディレクトリを登録し、uri
メソッドはそのページディレクトリの「ベースURI」を指定します。
use Laravel\Folio\Folio;
Folio::path(resource_path('views/pages/guest'))->uri('/');
Folio::path(resource_path('views/pages/admin'))
->uri('/admin')
->middleware([
'*' => [
'auth',
'verified',
// ...
],
]);
サブドメインルーティング
着信リクエストのサブドメインに基づいてページにルーティングすることもできます。たとえば、admin.example.com
からのリクエストを、他のFolioページとは異なるページディレクトリにルーティングしたい場合があります。これは、Folio::path
メソッドを呼び出した後にdomain
メソッドを呼び出すことで実現できます:
use Laravel\Folio\Folio;
Folio::domain('admin.example.com')
->path(resource_path('views/pages/admin'));