Как продлить директиву лезвия laravels @extends? - PullRequest
1 голос
/ 20 июня 2019

Я разрабатываю большую систему в Laravel. Идея состоит в том, чтобы создать модули и добавить их в свой репозиторий. Я хочу сделать его как можно более общим.

Проблема в (взгляде) пространствах имен laravel. Я хочу дать пользователю пакета возможность изменять путь представлений и, если он хочет, пространство имен представлений (дать ему возможность использовать функциональность, но используя настраиваемые представления).

Это приводит к проблеме с директивами лезвия @extends, @include и @component.

Не имея общего способа использовать пространства имен представления.

Необходимость помещать пространство имен в начале каждого клинка следующим образом:

@extends('user::layouts.web')

Будет проблема в том, что пространство имен никогда не может быть изменено из файлов конфигурации.

В других случаях я пытался использовать константу и конфигурацию для пространства имен.

@extends(App\Providers\UserServiceProvider::MODULE_SLUG.'::layouts.web')

@extends(config('user.module.viewNamespace') . '::layouts.web')

Эти 2 работают, но я не хочу каждый раз вводить путь конфигурации или пространство имен провайдера.

Я думаю, что мое лучшее решение - написание пользовательских директив @extends, @includes и @components для каждого модуля (это будет сделано динамически).

Вы получите следующие директивы: @userExtends @userInclude @userComponent

Последняя проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти способ расширить существующую директиву @extends.

Есть предложения?

1 Ответ

0 голосов
/ 20 июня 2019

Может быть, это то, что поможет вам выбрать правильный маршрут: https://laravel.com/docs/5.8/packages#views

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...