Как я могу изменить расширение файла шаблона Blade с * .blade. php только на * .blade - PullRequest
0 голосов
/ 21 марта 2020

Я знаю, что шаблон Laravel находится в каталоге / resource / views. И это расширение .blade. php.

Моя проблема в том, что я установил отдельное репо для дизайнера интерфейса для работы с шаблоном блейда, и репо ограничено pu sh любой файл с расширением . php.

Так что если я поменяю все файлы .blade. php на . лезвие файл! При этом laravel не может оштрафовать файл просмотра.

Как мне управлять им.

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Вы можете легко добавить свой пользовательский extension, Laravel обеспечивает легкий выход из коробки. Просто откройте файл app\Providers\AppServiceProvider.php и добавьте следующий код в метод boot (не забудьте использовать use View в начале класса после namespace App\Providers;):

public function boot()
{
    View::addExtension('blade', 'blade');
}

Теперь, Вы можете использовать что-то вроде этого, например:

Route::get('/example', function () {
    return view('example', ['name' => 'The Alpha']);
});

В этом случае вы должны создать представление в каталоге views, используя имя example.blade, например (resources/views/example.blade):

<!-- Also a master.blade should be in views/layouts directory -->
@extends('layouts.master')

@section('content')
    Hello {{ $name }}
@endSection

Это код resources/views/layouts/master.blade:

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel Custom Template</title>
    </head>
    <body>
        <div>
            @yield('content')
        </div>
    </body>
</html>

Если все идет хорошо, вы должны увидеть Hello The Alpha при посещении маршрута /example. Таким образом, единственное, что нужно, это добавить новый extension, используя View::addExtension('extension', 'engine), в этом примере я использовал blade в качестве движка, чтобы вы могли использовать все директивы / синтаксис blade. В качестве альтернативы вы можете использовать php в качестве движка, они доступны по умолчанию (также file), и если вы используете php в качестве движка, то вы не можете использовать blade директивы / синтаксис.

1 голос
/ 22 марта 2020

Создайте пользовательский класс фабрики представлений, расширяя класс Illuminate\View\Factory. В этом классе измените свойство $extensions:

protected $extensions = [
        'blade' => 'blade', // add this entry
        'blade.php' => 'blade',
        'php' => 'php',
        'css' => 'file',
        'html' => 'file',
    ];

Затем создайте нового поставщика услуг и используйте его для привязки вашей пользовательской фабрики к интерфейсу View\Factory:

$this->app->bind(
            'Illuminate\Contracts\View\Factory',
            'App\YourCustomerViewProvider'
        );

И это должно быть так. Примечание: я не проверял это, поэтому, возможно, его нужно настроить.

...