regla reenviar redirigir redireccionar para otra mensajes entrantes emails electrónico cuenta correos correo como automáticamente automaticamente php zend-framework

php - redireccionar - reenviar o redirigir



¿Cuál es la diferencia entre redirigir y reenviar en Zend framework (6)

1-redirigir crea una nueva respuesta con la información del encabezado () [302 encontrado o 301 == Movido de forma permanente] y volverá al ciclo de envío una vez más

2-forward cambiar el flujo de ejecución a esa nueva solicitud sin volver a ingresar el proceso de envío de nuevo

¿Cuál es la diferencia entre redirigir y reenviar en Zend framework?

¿Cuándo deberíamos usar la redirección y cuándo debemos utilizar el reenvío?


Imagina que recibes una llamada telefónica en la oficina. Alguien quiere hablar de ventas. Si dices "por favor llama al 123456" y cuelgas, esto es redirigido . Si dices "espera un minuto" y simplemente transfieres la llamada, esto es hacia adelante . ;)


La acción de redirección finaliza el proceso de la página actual y redirige a otra. Todo el contexto cambiará (nuevo controlador / acción) a medida que el navegador recibe una redirección. Se conecta a una nueva URL

Mientras que el forward se mantendrá en la misma página, pero no cambiará el contexto. Puedes ver esto como una llamada a función. Sus vistas se cargarán como de costumbre.


Supongo que una redirección envía un 301/302 de vuelta al navegador con una nueva URL, mientras que un reenvío simplemente "reenvía" la solicitud a una acción de controlador diferente internamente, pero mantiene la URL igual para que el navegador no conozca ninguna otra .


Utilizaría _forward () para los casos en los que desee que la URL permanezca igual, aunque tenga cuidado , significa que cualquier clase de controlador base que esté utilizando se llama dos veces.

Eso puede parecer obvio o trivial, pero si no se tiene en cuenta, puede realmente arruinar el diseño de la aplicación, dado que la comprensión intuitiva del flujo es que una solicitud llama a una instancia del controlador. Por ejemplo, significa que los singleton de request-scope deben declararse como static , o _forward () los romperá.


_forward() simplemente reenvía todo a otra acción del controlador, mientras que _redirect() envía un encabezado, lo que significa que creas una nueva solicitud HTTP y pasas por todo el proceso de envío con ella.

Por ejemplo, si llama a http://example.com/foo/bar , llamará al controlador foo y a la acción de la bar . Si reenvía dentro de la acción de bar a la acción de baz , por ejemplo, dentro de la misma solicitud, el navegador aún estaría en la misma URL, mientras que al hacer una redirección, ZF le indicaría al navegador que cargue http://example.com/foo/baz .

Esencialmente, _forward() no

$request->setActionName($action) ->setDispatched(false);

while _redirect() hace

$this->_helper->redirector->gotoUrl($url, $options);

Por lo general, redirecciono cuando quiero evitar que se vuelva a cargar una página que da como resultado la publicación de datos del formulario.

Ver estos: