こんにちは、コバヤシです。
今回は先日stable releaseされたばかりの、Laravel Folioを試してみたいと思います。
Laravel Folioとは
Laravel Folioは、Laravel用のファイル・ディレクトリベースのルーティングシステムです。Bladeテンプレートを特定のディレクトリに保存するだけで、自動的にそのページへのルーティングが設定されます。これにより、効率的にページの管理とルーティングを行うことができます。
インストール
composer require laravel/folio
Composerからライブラリのインストールを行います。
php artisan folio:install
次にartisanコマンドでインストールを行います。
以上でインストールは完了です。
ページを表示する
Laravel Folioでは、resources/views/pagesにbladeファイルを配置するだけでページを表示できるようになります。
試しにresources/views/pages/hello.blade.phpを作成してみます。
このページにアクセスするには、/helloにアクセスします。
通常はroutesに何も記載していないので404になるのですが、アクセスしたところhello.blade.phpの内容が問題なく表示されました。
ルートパラメータ
次にルートパラメータを試してみます。
ファイルをresources/views/pages/hello/以下に、[name].blade.phpとして作成します。
このファイル名の[name]の部分がパラメータです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> Hello!! {{ $name }}さん </body> </html>
ファイルの中はこんな感じにしておいて、/hello/kobayashiにアクセスると、
「Hello!! kobayashiさん」と表示されました。
ミドルウェアの適用
テンプレートに以下のように記述することで、ミドルウェアも適用できます。
<?php use function Laravel\Folio\middleware; middleware(['auth']); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> Hello!!{{ $name }}さん </body> </html>
上記の例では、authのミドルウェアが適用されるようになります。
まとめ
routesに記述すること無く簡単にページを表示することが出来ました。
問題は通常のroutesとのルーティングの管理が煩雑になるような気もします。また、ルートパラメータを取得する出来るのですが、取得してからの処理をBlade内に書くことを考えると、Controllerを使ったほうが良いような。。。
静的ページが多い場合は良いのかなと思いますが、使い所は検討ですね。