Pregunta

Así que recientemente hice el paso de la depuración ad hoc con dump , print_r y echo a algunos métodos más sofisticados y yo Estoy teniendo una lucha.

Trabajo con Zend Framework, Aptana y Zend Debugger.

En este momento estoy tratando de depurar un controlador personalizado y, sea lo que sea lo que intento, no llego a mi punto de interrupción, lo que entiendo, ya que hay una autenticación intermedia y uso del menú.

Preguntas :

  1. ¿Cómo puedo hacer que mi aplicación se rompa en el punto de autenticación, iniciar sesión en el navegador, navegar a una cierta uri y luego continuar la depuración?
  2. ¿Cuáles son buenos lugares para establecer puntos de interrupción en Zend Framework con MVC?
¿Fue útil?

Solución

¿Desea cambiar los detalles de autenticación del usuario actual a mitad de una solicitud?

No creo que esto sea posible. Zend Debugger es prácticamente una herramienta de solo lectura. Incluso si lo fuera, está asumiendo que cualquier marco que esté usando puede manejar esto. Eso significaría que tendría que intentar constantemente sincronizar su estado interno con el cambio de datos de entrada.

Creo que en lugar de preguntarnos cómo resolver este problema específico, debería decirnos por qué necesita cambiar la autenticación. Parece que está iniciando un script en su depurador, que falla porque no tiene sesión de usuario.

Zend Debugger tiene una barra de herramientas del navegador ( http: // files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm ) que le permite iniciar un depurador para su página actual; el depurador tendrá toda la información que el navegador habría enviado: cookies, datos de publicación, etc. Incluso hay una "depuración en la página siguiente". configuración que le ayuda a depurar formularios POST. Parece que esto es lo que quieres.

Otros consejos

¿No sería más fácil configurar una constante como:

define('MODE_DEBUG', 1);

Luego verifique el proceso de autenticación:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){

}

Nadie podrá inyectar en esa constante y lo peor que puede pasar es que termines dejando el modo de depuración por mi error ...

Cuál podría poner un cheque antes de la definición:

define('MODE_DEBUG', (false !== strpos(

¿No sería más fácil configurar una constante como:

define('MODE_DEBUG', 1);

Luego verifique el proceso de autenticación:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){

}

Nadie podrá inyectar en esa constante y lo peor que puede pasar es que termines dejando el modo de depuración por mi error ...

Cuál podría poner un cheque antes de la definición:

<*>SERVER['HTTP_HOST'], 'dev.mysite.com') ? 1 : 0));

Tal vez solo necesite repensar la solución de volcado (me gusta la idea de usar puntos de interrupción, pero regresé después de problemas como su experiencia y uso Zend Studio). Para depurar mis aplicaciones, uso Zend_Log y el escritor de firebug para Zend_Log. Firebug envía el registro a firebug (NB debe tener el < una extensión href = "http://www.firephp.org/" rel = "nofollow noreferrer"> firephp para firefox instalado también). Almacene el registrador en su registro y puede realizar una gran cantidad de depuración sin desordenar sus vistas con volcados feos.

Ok, entonces jugué con el depurador zend un poco más. (su pregunta despertó a viejos demonios) y finalmente descubrí el `` correcto '' forma de depurar. Para responder a su pregunta inicial para depurar después de iniciar sesión, diría que instale la barra de herramientas zend para firefox o IE. A la derecha del elemento del menú Depurar hay un menú desplegable con algunas opciones. Una de las opciones es '' página siguiente ''. Para que pueda ir a su pantalla de inicio de sesión, seleccione "Página siguiente" y luego ingrese sus credenciales y envíe y la página SIGUIENTE es lo que se depura.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top