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
-~----------~----~----~----~------~----~------~--~---