在Laravel 5.1中,我正在尝试设置特定于环境的配置。在本地和开发环境中,我的应用程序结构类似于典型的subversion分支。所以我有多个laravel并行安装。例如:
http://dev.domain/trunk/public/...
http://dev.domain/branches/branch1/public/...
要使用我的应用程序的所有这些不同版本,我需要动态配置,与“基本路径”相关,因此域和公用文件夹之间的部分。
我到目前为止所做的是将域名放在我的app.php
中。我正在努力的是,如何或在何处设置,这个动态部分取决于您调用应用程序的子路径。
我尝试的是设置配置文件config/myapp/app.php
。那将是我的生产配置,所以那里的配置参数看起来像这样(因为在生产中我会有这个子目录):
url_path_to_public = ''
现在,我想通过创建一个以我当前环境dev
命名的子文件夹,然后用动态表达式覆盖此参数,将其级联到我的本地和开发环境。所以这看起来像:
'url_base_path_to_public' => strstr(str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__), '/config/dev/myapp/app.php', true).'/public',
所以这个文件位于:
config/dev/myapp/app.php
由于某种原因,即使我在dev
模式下运行我的应用程序,也未使用此参数。我期望配置级联该参数。
另一种方法是直接在特定于环境的配置文件.env
中设置此信息,但在那里我不能使用上面提到的动态表达式。
我是否因为预期会像预期的那样工作而犯错?
答案 0 :(得分:2)
在Laravel 5中,级联配置被弃用,转而支持dotenv。因此,您希望将环境设置为dev
并让其读取config/dev/
文件的行为不再存在。