我正在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
指令的方法。
有什么建议吗?