Php 如何扩展laravels刀片指令@extends?

Php 如何扩展laravels刀片指令@extends?,php,laravel,Php,Laravel,我正在拉维尔开发一个大型系统。其想法是创建模块并将其添加到自己的存储库中。我想让它尽可能通用 问题在于laravel的(视图)名称空间。我想让包的用户能够更改视图的路径,如果他想要视图的名称空间(让它能够使用功能,但使用自定义视图) 这会导致刀片指令@extends、@include和@component出现问题 无法通用地使用视图名称空间 必须将名称空间放在每个刀片服务器的第一位,如下所示: @extends('user::layouts.web') 将产生一个问题,即名称空间永远无法从配置

我正在拉维尔开发一个大型系统。其想法是创建模块并将其添加到自己的存储库中。我想让它尽可能通用

问题在于laravel的(视图)名称空间。我想让包的用户能够更改视图的路径,如果他想要视图的名称空间(让它能够使用功能,但使用自定义视图)

这会导致刀片指令
@extends
@include
@component
出现问题

无法通用地使用视图名称空间

必须将名称空间放在每个刀片服务器的第一位,如下所示:

@extends('user::layouts.web')
将产生一个问题,即名称空间永远无法从配置文件中更改

我尝试的其他方法是为名称空间使用常量和配置

@extends(App\Providers\UserServiceProvider::MODULE\u SLUG.::layouts.web')

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

这两个都可以,但我不想每次都输入配置路径或提供程序名称空间

我认为我最好的解决方案是为每个模块编写自定义指令
@extends
@includes
@components
(这将动态完成)

您将获得以下指令:
@userExtends
@userInclude
@userComponent

我遇到的最后一个问题是,我找不到扩展现有
@extends
指令的方法


有什么建议吗?

也许这是能让你走上正确路线的建议:

您不能使用
@extends({{module\u namespace}}::layouts.web”)
?您将在哪里设置这个$moduleNamespace变量?使用视图生成器?