【问题标题】:Where in Laravel 4 to declare new location and new namespace在 Laravel 4 中声明新位置和新命名空间的位置
【发布时间】:2013-10-08 03:34:35
【问题描述】:

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

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 或其他文件中。

【问题讨论】:

    标签: php view laravel


    【解决方案1】:

    如果这就是你要做的全部,把它放在app/start/global.php 中就可以了。如此简单的任务真的不需要新的服务提供商。

    但是,如果一段时间后您意识到您的 global.php 文件开始变得过于沉重和凌乱,那么您应该像 @fideloper 提到的那样寻求服务提供商。

    【讨论】:

      【解决方案2】:

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

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

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

      如果您在创建服务提供商时需要帮助/不知道该放在哪里,请阅读this on creating a Laravel application library

      【讨论】:

      • 还能比这更简单吗?当 View 类准备好“加载”时?
      • 可以比这更简单!将其放入您列出的start.php/global.php 文件之一 - 代码可以很容易地到达那里!对于“最佳实践”,我认为您会发现围绕创建应用程序库的一般偏好 - 从长远来看,它更易于维护。但是,对于每个人来说,您可能不需要任何“长期”项目。我当然写了很多不使用更复杂代码结构的“短期”应用程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 2017-01-18
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2020-06-30
      • 2013-09-30
      相关资源
      最近更新 更多