Lorsque j'ai besoin de faire un lien inter app, j'utilise ce helper.
C'est sans doute moins propre que ta méthode, mais ça marche!

/**
  * a function that allow link_to between apps
  * @param  $app    string      the app we want to go to
  * @param  $route  string      the route in the app. Must be valid
  * @param  $args   array       the arguments required by the route.
Optional
  *
  */
function cross_app_link_to($app, $route, $args=null)
{
  /* get the host to build the absolute paths
     needed because this menu lets switch between sf apps
  */
  $host = sfContext::getInstance()->getRequest()->getHost() ;
  /* get the current environment. Needed to switch between the apps
preserving
     the environment
  */
  $env = sfConfig::get('sf_environment');
  /* get the routing file
  */
  $appRoutingFile =
SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.
$app.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'routing.yml' ;
  /* get the route in the routing file */
  /* first, substract the @ from the route name */
  $route = substr($route, 1, strlen($route)) ;
  if (file_exists($appRoutingFile))
  {
    $yml = sfYaml::load($appRoutingFile) ;
    $routeUrl = $yml[$route]['url'] ;
    if ($args)
    {
      foreach ($args as $k => $v)
      {
        $routeUrl = str_replace(':'.$k, $v, $routeUrl) ;
      }
    }
    if (strrpos($routeUrl, '*') == strlen($routeUrl)-1)
    {
      $routeUrl = substr($routeUrl, 0, strlen($routeUrl)-2) ;
    }
  }
  if ($env == 'dev')
  {
          $path = 'http://' . $host . '/' . $app . '_dev.php' . $routeUrl ;
  }
  else
  {
        $path = 'http://' . $host . $routeUrl ;
  }
  return $path ;
}


On 18 juin, 15:00, Olivier Mansour <[EMAIL PROTECTED]> wrote:
> Le 18 juin 07 à 12:52, Tristan Rivoallan a écrit :
>
>
>
> > On 6/18/07, Olivier Mansour <[EMAIL PROTECTED]> wrote:
>
> >> Je voudrais pouvoir générer une URL pour une autre application de mon
> >> projet. Je pensais faire un helper ressemblant à link_to mais qui
> >> instancierait le contrôleur de l'application cible pour ensuite  
> >> facilement
> >> obtenir le lien via le link_to "standard".
>
> > après une recherche rapide, je ne trouve pas trace de ces constantes
> > ailleurs dans symfony (mais c'est une recherche windows je ne sais pas
> > si c'est fiable ;)
>
> > tu peux essayer de ne pas les définir et te contenter d'inclure le
> > config.php de l'application qui t'intéresse directement.
>
> pas vraiment de résultats :
>
> $control = sfContext::getInstance();
> $control->shutdown();
>   include_once
> (SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.
> $appname.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
>
> $myControl = sfContext::getInstance()->getController();
> return $myControl->genUrl($internal_uri, false);
>
> me retourne toujours une url correspondante à mon application en  
> cours et non à $appname
>
> Olivier
>
>
>
> > ++
> > tristan
>
> --
> Olivier MANSOUR      http://www.clever-age.com
> Clever Age Lyon - conseil en architecture technique
> GSM: +33 6 11 03 23 77  Tél: +33 4 78 89 46 45
>
> Clever Age vous invite à ses petits déjeuners du 
> Jeudihttp://www.clever-age.com/actualites/petits-dejeuners/
>
> Clever Age recrute sur Paris, Lyon et 
> Bordeauxhttp://www.clever-age.com/societe/nous-rejoindre/


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à