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 とかで対応しても良さそう。