Rutesが簡単に?!Laravel Folioを試してみる

こんにちは、コバヤシです。
今回は先日stable releaseされたばかりの、Laravel Folioを試してみたいと思います。

Laravel Folioとは

Laravel Folioは、Laravel用のファイル・ディレクトリベースのルーティングシステムです。Bladeテンプレートを特定のディレクトリに保存するだけで、自動的にそのページへのルーティングが設定されます。これにより、効率的にページの管理とルーティングを行うことができます。

github.com

インストール

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を使ったほうが良いような。。。
静的ページが多い場合は良いのかなと思いますが、使い所は検討ですね。