在Laravel 4中声明新位置和新命名空间的位置

时间:2013-10-01 20:26:12

标签: php view laravel

我正在尝试创建一个替代视图,并找到了这个答案:

How to load view from alternative directory in Laravel 4

建议使用此代码

View::addLocation(app('path').'/themes/default');
View::addNamespace('theme', app('path').'/themes/default');

但无法决定在何处声明这些陈述。我可以在哪个文件中使用此代码?

start.php,path.php,app.php,global.php或其他文件。

2 个答案:

答案 0 :(得分:2)

如果使用app/config/view.php配置文件添加视图加载位置(通过paths数组)不足以满足您的需求,您可以将其放入服务提供商。

Laravel实际上使用View Library的Service Provider来注册视图路径位置(基于所提到的app/config/view.php配置文件)。

您可以做的一件事是添加自己的服务提供程序类并在其中添加视图逻辑,以便根据需要添加位置/命名空间。 (您甚至可以让服务提供者读取您自己的配置文件以确定位置/命名空间。)

如果您在创建服务提供商方面需要帮助/不知道在何处放置服务提供商,请阅读this on creating a Laravel application library

答案 1 :(得分:1)

如果这就是你要做的所有事情,把它放在app/start/global.php里面就可以了。对于这么简单的任务,真的不需要新的服务提供商。

但是,如果过了一段时间你意识到你的global.php文件开始变得太沉重和混乱,那么你应该去服务提供商,就像@fideloper提到的那样。