8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel Pug で Pug ファイルを Laravel へ導入する

Last updated at Posted at 2017-04-08

Laravel Pug は Pug ファイルをLaravel のテンプレートとして使用するためのライブラリです。

導入

  • composer require bkwld/laravel-pug を実行
  • サービスプロバイダに Bkwld\LaravelPug\ServiceProvider::classを追加

仕様

  • pug ファイルは Blade と同じく、resources/views に配置する。
  • 拡張子は pug でOK
  • resources/views/index.pugview("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 とかで対応しても良さそう。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?