Laravel Pug は Pug ファイルをLaravel のテンプレートとして使用するためのライブラリです。
導入
-
composer require bkwld/laravel-pugを実行 - サービスプロバイダに
Bkwld\LaravelPug\ServiceProvider::classを追加
仕様
- pug ファイルは Blade と同じく、
resources/viewsに配置する。 - 拡張子は
pugでOK -
resources/views/index.pugはview("index")で呼び出せる。 - Pug の変数記述は
view関数の第二引数とかwithとかで普通に渡せる。 - extend とか include が動く
- baseDir が
resources/viewsに設定されてるので,/始まりのファイル参照とかも動く
変数の運用など
Pug に gulp から locals とか大量に突っ込んでた人は View::shareとか使って、グローバルにView 変数を定義すると楽っぽい。
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\View\Factory;
class AppServiceProvider extends ServiceProvider
{
public function boot(Factory $view)
{
$data = [
...
];
$view->share($data);
}
public function register()
{
//
}
}
内部的な仕組み
まずは Pug がコンパイルされれて、その結果が Blade として解釈される。
Pug の中で Blade のSyntax を使用する場合は、ファイル名を hoge.pug.bladeなどの形式にしなければならないよう
内部のコンパイルにはpug-phpを使用しており、このPugオブジェクトには laravel-pug.pug のコンテナキーワードでアクセス可能。
一応 設定ファイルで,laravel-pug.phpという形で作成すれば、コンストラクタ引数を定義出来るが、 別に extend とかで対応しても良さそう。