En symfony 1.4, ¿cómo llamar una acción de otra aplicación desde la acción actual?Symfony Interacción de aplicaciones múltiples
Respuesta
Sería algo así:
public function executeActionA(sfWebRequest $request)
{
$this->redirect("http:://host/app/url_to_action");
}
En Symfony cada aplicación es independiente de las demás, por lo que si es necesario llamar a una acción de otra aplicación, es necesario solicitarlo directamente .
Cada aplicación está representada por un controlador principal (frontend, backend, webapp), este controlador se encarga de la entrega de cada solicitud a la acción correspondiente (y muchas otras cosas como filtros, etc.).
Realmente recomiendo que leas esto, sería bastante más explicativa: Symfony - Inside the Controller Layer
Hay un puesto el blog sobre eso aquí:
Hay una complemento para este:
Y hay algunas entradas del blog que lo explican:
- http://rabaix.net/en/articles/2009/05/30/cross-link-application-with-symfony
http://rabaix.net/en/articles/2009/07/13/cross-link-application-with-symfony-part-2
(Nota: ambos son de Symfony 1.2, pero también deben trabajar en 1.4)
Para dirigir a su interfaz para el backend, hay tres sencillos pasos:
1. Añadir a la configuración del backend los dos métodos siguientes
Estos métodos leen el enrutamiento de back-end, y lo utilizan para generar rutas Deberá proporcionar el enlace, ya que php no sabe cómo configuró su servidor web para la otra aplicación.
.
// apps/backend/config/backendConfiguration.class.php
class backendConfiguration extends sfApplicationConfiguration
{
protected $frontendRouting = null;
public function generateFrontendUrl($name, $parameters = array())
{
return 'http://frontend.example.com'.$this->getFrontendRouting()->generate($name, $parameters);
}
public function getFrontendRouting()
{
if (!$this->frontendRouting)
{
$this->frontendRouting = new sfPatternRouting(new sfEventDispatcher());
$config = new sfRoutingConfigHandler();
$routes = $config->evaluate(array(sfConfig::get('sf_apps_dir').'/frontend/config/routing.yml'));
$this->frontendRouting->setRoutes($routes);
}
return $this->frontendRouting;
}
// ...
}
2. Puede vincular a su aplicación de una manera tan ahora:
$this->redirect($this->getContext()->getConfiguration()->generateFrontendUrl('hello', array('name' => 'Bar')));
3.Puesto que es un poco tedioso para escribir, puede crear un ayudante
function link_to_frontend($name, $parameters)
{
return sfProjectConfiguration::getActive()->generateFrontendUrl($name, $parameters);
}
El sfCrossLinkApplicationPlugin hace esto, esto, pero de una manera un poco más simple, que sería capaz de utilizar una sintaxis similar a la siguiente:
<?php if($sf_user->isSuperAdmin()):?>
<?php link_to('Edit Blog Post', '@backend.edit_post?id='.$blog->getId()) ?>
<?php endif ?>
- 1. Symfony: múltiples aplicaciones en una prueba
- 2. Symfony - actualizar múltiples registros
- 3. Múltiples archivos de registro en Symfony
- 4. carga de archivos múltiples Symfony 2
- 5. múltiples formas de mismo tipo - Symfony 2
- 6. ELMAH con múltiples aplicaciones
- 7. Múltiples aplicaciones con django
- 8. Supervisar múltiples aplicaciones de rieles
- 9. Servicio de interacción vs Objetos de solicitud de interacción
- 10. múltiples aplicaciones Grails en Tomcat
- 11. ¿Cómo manejar múltiples colecciones de formularios anidados en Symfony 2.0?
- 12. Tomcat y múltiples dominios/aplicaciones
- 13. Perfilado de aplicaciones C++ de subprocesos múltiples
- 14. GCOV para aplicaciones de subprocesos múltiples
- 15. Directorios de aplicaciones múltiples con Dancer perl
- 16. paquete de aplicaciones múltiples en una aplicación
- 17. Múltiples aplicaciones de django en una vista
- 18. one XCode Project múltiples aplicaciones de iPhone
- 19. Symfony multiple sites
- 20. Aplicaciones Kiosk - Programación OS X - Monitores múltiples
- 21. Instalación única, múltiples dominios y aplicaciones?
- 22. Kohana PHP - Múltiples aplicaciones con modelo compartido
- 23. Comunicación entre múltiples aplicaciones web usando SignalR
- 24. Android, varias aplicaciones, múltiples clientes, One Keystore
- 25. Django y brújula con múltiples aplicaciones
- 26. CodeIgniter: Aplicaciones múltiples, ¿cómo compartir recursos?
- 27. C# TWAIN interacción
- 28. Interacción Apache + mod_wsgi
- 29. SVN Hudson JIRA interacción
- 30. interacción NSThread y UIViewController
El uso de direcciones URL absolutas no es nada agradable ... – Arend
Totalmente de acuerdo, no dije que fuera el mejor, pero es una forma, y de ver los artículos publicados por usted, verá que son sigue utilizando la concatenación de texto para generar una url absoluta. – guiman
Por supuesto, al final eso es lo que hacen los sistemas de enrutamiento :) – Arend