Symfony 4 转储功能无法正常工作

问题描述 投票:0回答:2

我正在开发一些 REST API,转储函数在我的开发环境中停止工作,它不显示任何有关任何内容的信息或返回通常的输出

我尝试使用 dump() 函数(来自 /vendor/symfony/var-dumper/Resources/functions/dump.php 文件)和 \Symfony\Component\VarDumper\VarDumper::dump 进行调试() 函数具有相同的结果:它不显示任何内容或抛出 php 异常。

另外,我也尝试过:使用常规调试命令(即 bin/console config:dump-reference)并重新安装调试包

在此示例中,我的程序返回一个通知:数组到字符串转换

$foo = array("asdads", "czxcxzc");
dump($foo);

在另一个示例中,响应为空

$foo = "bar";
dump($foo);

我只需要此函数的常规输出:对于调试和查看我的程序发生了什么非常有用

php symfony4
2个回答
0
投票

我想我已经弄清楚了。

问题是我在我的主控制器类(App\Controller)上添加了

__destruct()
方法

应用\控制器

abstract class Controller implements ContainerAwareInterface
{

use ContainerAwareTrait;
use ControllerTrait;    
...
public function __destruct()
{
   //Some stuffs here
}

我不知道为什么,但是这个方法避免了加载其中一些调试方法(也许还有一些其他功能,但不确定)

解决方案(目前)是将这个 __destruct() 方法移至我的应用程序主控制器。现在一切都很顺利


0
投票

Symfony var dumper ,可以更改一些对象属性(在执行 Caster 操作时),因此在 destruct 函数内,您的对象可以具有不同的类型(例如数组)。您必须在析构方法内调用对象方法或属性之前检查对象类型。

© www.soinside.com 2019 - 2024. All rights reserved.