【问题标题】:Symfony 3 web front controller with envSymfony 3 带有 env 的 web 前端控制器
【发布时间】:2017-06-21 20:37:16
【问题描述】:

Symfony 3 使用两个 web 前端控制器 app.php 和 app_dev.php。我如何将其更改为使用一个使用环境变量的控制器来设置环境(产品、开发)和调试。

我试图删除 app_dev.php 但 symfony 试图加载该文件。

也许这不是办法,只是学习symfony。欢迎提出其他建议。

【问题讨论】:

  • Symfony 不强制入口点 (app/app_dev) 位置。你能告诉我们你遇到了什么错误吗?
  • 前端控制器存放在web目录下。我的明智之举是使用一个可以通过 env 变量设置环境的前端控制器。所以我已经删除了开发控制器,但是 symfony 试图在某个地方加载这个文件

标签: php symfony frameworks


【解决方案1】:

前端控制器文件app.phpapp_dev.php 分别作为proddev 的示例存在。正如文档 (http://symfony.com/doc/3.4/configuration/environments.html) 所建议的那样,您需要为生产部署删除一个或另一个,或者只是为每个环境创建一个自定义前端控制器,并让您的 apachenginx 配置只加载合适的文件来启动 Symfony。

您将在文件中看到,环境已声明并传递,以及是否应启用调试。

//dev environment, with debug enabled
$kernel = new AppKernel('dev', true);

相比之下,对于生产:

//prod environment, debug disabled
$kernel = new AppKernel('prod', false);

如果您想要一个带有一些动态元素的控制器,我建议您在实例化 AppKernel 之前删除 app_dev.php 并使用带有自定义逻辑的 app.php 来执行您想要的操作。

【讨论】:

  • 但是当我删除一个文件时,我得到了一些错误。看起来 symfony 正在期待 thouse 文件。我明天会发布错误
  • 如果该文件是 apachenginx 所期望的默认索引页面,您只会收到删除文件的错误。
  • 当我删除文件 app_dev.php 这就是我在屏幕上看到的:没有指定输入文件。就像@Jake Litwicki 说它在我的 nginx (流浪宅基地 symfony)的某个地方配置。但是我在哪里可以找到这些设置更改为仅使用 app.php
猜你喜欢
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多