SYMFONY DEV to PROD: \DebugBundle not included by AppKernel.php in PROD case creates issue with all existing dump(...) 函数在代码中
SYMFONY DEV to PROD: \DebugBundle not included by AppKernel.php in PROD case creates issue with all existing dump(...) functions in the code
在 SYMFONY3 中,我在代码中大量使用 The VarDumper Component that works with the DebugBundle Configuration ("debug") 的 dump(...) 函数。
一旦您转到生产设置,代码中的所有 dump(...)
都会成为问题并引发错误,因为在 [project]\app\AppKernel.php 中设置看起来像那:
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [...];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
...
}
return $bundles;
}
.... other functions...
}
Symfony\Bundle\DebugBundle\DebugBundle()
仅适用于 'dev' 环境。我可以将它添加到 'prod' 环境中,但出于明显的性能原因,它并不意味着那样。
表示必须删除(或注释)代码中的所有dump(...)
。我有很多,所以我想知道是否有关于该特定主题的建议,可以顺利地从 "dev" 移动到 "prod" 。
显然,最好的方法是删除所有转储,但这里有一个您可以尝试的解决方法。
您应该创建一个什么都不做的 PHP closure。这样,对转储函数的调用将完全没有效果。
我还没有尝试过,所以如果您有任何问题,请告诉我。
// web/app.php
function dump() {
return;
}
在 prod
环境中,您必须完全删除所有 dump()
调用。这就是为什么 Symfony 仅在 dev
环境中使用 dump
函数,而不允许您在 prod
环境中使用该函数编写 运行 代码。
此外,在代码周围使用 dump()
语句也不是很好。您可以使用这个有用的函数测试您的代码的某些部分,但是当您知道您的代码运行良好时,您可以立即删除 dump()
语句。而且你以后不会有任何问题。
您可以使用任何 IDE 将所有出现的 dump()
替换为空字符串,因此您将在 prod
环境中获得工作代码。
在 SYMFONY3 中,我在代码中大量使用 The VarDumper Component that works with the DebugBundle Configuration ("debug") 的 dump(...) 函数。
一旦您转到生产设置,代码中的所有 dump(...)
都会成为问题并引发错误,因为在 [project]\app\AppKernel.php 中设置看起来像那:
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [...];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
...
}
return $bundles;
}
.... other functions...
}
Symfony\Bundle\DebugBundle\DebugBundle()
仅适用于 'dev' 环境。我可以将它添加到 'prod' 环境中,但出于明显的性能原因,它并不意味着那样。
表示必须删除(或注释)代码中的所有dump(...)
。我有很多,所以我想知道是否有关于该特定主题的建议,可以顺利地从 "dev" 移动到 "prod" 。
显然,最好的方法是删除所有转储,但这里有一个您可以尝试的解决方法。 您应该创建一个什么都不做的 PHP closure。这样,对转储函数的调用将完全没有效果。 我还没有尝试过,所以如果您有任何问题,请告诉我。
// web/app.php
function dump() {
return;
}
在 prod
环境中,您必须完全删除所有 dump()
调用。这就是为什么 Symfony 仅在 dev
环境中使用 dump
函数,而不允许您在 prod
环境中使用该函数编写 运行 代码。
此外,在代码周围使用 dump()
语句也不是很好。您可以使用这个有用的函数测试您的代码的某些部分,但是当您知道您的代码运行良好时,您可以立即删除 dump()
语句。而且你以后不会有任何问题。
您可以使用任何 IDE 将所有出现的 dump()
替换为空字符串,因此您将在 prod
环境中获得工作代码。