2009-04-06 19 views
6

Estamos tratando de crear una aplicación utilizando Zend Framework y tenemos el siguiente problema: "Algunas acciones del controlador se llaman dos veces. Esto significa que las acciones se llaman, termina su ejecución y luego se llama nuevamente ".Zend Framework Action se llama dos veces

Hemos rastreado esto al marcar las entradas en un archivo de registro. Para una solicitud, hay 2 entradas en el archivo de registro.

¿Sabe algo que pueda estar causando este problema? ¿Está relacionado esto con el proceso de envío del controlador frontal?

Saludos,

+0

¿Tal vez su acción está llamando a otra función en algún lado, que está llamando a la misma acción otra vez? – karim79

+0

Estaba enfrentando el mismo problema y me tomó mucho tiempo. Terminé sintiendo que era una broma muy desagradable. – kta

Respuesta

1

Podría ser un error. Difícil de decir sin más información.

Intente registrar una traza inversa cada vez que se invoca el método de acción.

<?php 
trigger_error(var_export(debug_backtrace(), true)); 
trigger_error(var_export($_SERVER, true)); 
?> 

esto le dará un montón de información en el registro de errores, por lo que desea exportar el resultado a un editor de texto y picar a través de él allí. Y/o posiblemente modifique el código para imprimir menos información.

Un par de cosas que debe buscar:

  • ¿Es la acción-método llamado de diferentes lugares?
  • ¿Los $ _SERVER ['UNIQUE_ID'] (o REQUEST_TIME) son diferentes?

Si el ID único es diferente, entonces ha realizado dos solicitudes al servidor. Si no, intente descubrirlo desde la pista de atrás.

2

hacia adelante o pila acción puede ser la razón

2

tratar de utilizar un depurador (XDebug por ejemplo) para ver cómo es ejecutado el código. centrarse en el despachador, algo debe haber sucedido y la acción de solicitud no se establece como despachada para que se ejecute de nuevo.

1

Estábamos teniendo un problema similar. Algunas acciones fueron ejecutadas dos veces. Después de mucha depuración y búsqueda de Google, descubrí que el problema era un error en ZFdebug. Instalado this patch y todo volvió a la normalidad. Espero que esto ayude a alguien más.

5

Descubrí que la acción se solicitó dos veces cuando se habilitó Chrome Extension Webug (extensión FirePHP para Google Chrome).

+0

No puedo decirte lo útil que fue esto. Estaba a punto de renunciar a este hilo cuando vi esto. Gracias. Qué desastre tener esta extensión hacer una segunda solicitud. Uf. De todos modos, mucho lo aprecio. Este fue mi problema también. –

+0

Gracias amigo, las solicitudes dobles me estaban volviendo loco, pero en realidad era el FirePHP (en mi caso, en Firefox) --- corrección, no tengo FirePHP en FF, fue FireBug en sí que desencadenó la segunda llamada – Peter

1

Estoy usando Chrome 17.0.x, Webug y Zend Framework 1.11.1 y sigo viendo este problema. Inhabilité Webug como se sugirió y solo se llamó a Action una vez.

Entonces, creo que esto es un error en Webug.

+0

I disculparme por este error en Webug: en la versión actual está corregido. – fedosov

Cuestiones relacionadas