php - new - El controlador de errores Yii2 muere feo en llamadas no objeto
yii2 exception (1)
¿Alguien puede tener alguna idea? ¿Qué puede hacer que el manejador de errores Yii2 se detenga correctamente en la línea siguiente?
echo $missing;
(asumiendo que ese $missing
es nulo) y muestra correctamente el aviso " Variable no definida: falta ... ". Y al mismo tiempo "morir" totalmente en la siguiente línea:
echo $missing->noneExisting();
y mostrar (regresar) la página completamente en blanco en lugar del mensaje de error correcto?
Tengo problemas muy extraños con el controlador de errores Yii2 desde que comencé a codificar en Yii2. El código anterior es uno de ejemplos. Otra es que la redeclaración del espacio de nombres Yii
en la migración hace que la consola de línea de comandos muera fea, en lugar de mostrar el error fatal correcto .
Me han dicho que este problema es causado por mi configuración de PHP. Pero me resulta difícil de creer, principalmente porque:
No he cambiado nada en mi estructura de XAMPP, contenido de
php.ini
, etc. durante los últimos muchos, muchos meses, todavía estoy usando la versión 1.8.1 de XAMPP (versionada sin conformidad con la versión de PHP),Todos los problemas mencionados comenzaron hace aproximadamente un mes, cuando comencé a codificar en Yii2 y sucede solo en las aplicaciones con Yii2. No puedo reproducir ninguno de los problemas mencionados anteriormente en ninguno de mis proyectos con Yii1.
Estoy de acuerdo en que esto debe ser algo en mi instalación local de PHP, porque he probado todos estos ejemplos en el recientemente instalado XAMPP 5.6.8 y en su versión portátil. Pero, dado que solo puedo reproducir este problema en un proyecto con Yii2 y todo va bien en aplicaciones con Yii1 o bajo PHP puro, entonces debe haber algún tipo de demonio desagradable dentro.
¿Puede alguien ayudar aquí o al menos arrojar algo de luz, dónde debería empezar a buscar?
Descubrí que en ciertos entornos, cuando Yii2 maneja un error de variable faltante, muestra un error en la parte inferior del depurador.
Warning: var_export does not handle circular references in ~/vendor/yiisoft/yii2/helpers/BaseVarDumper.php on line 187
Tal vez ese error está causando que su entorno muera con esto. Sin embargo, esto parece ser un error.
Además, encontré una solución con la solución que se encuentra en este Issue de Github . No es bonito, pero es una solución.
Editar: se lanzó un parche para este problema. Mira aquí