2012-05-29 894 views
2

随着Silex的(PHP的微架构),它可能给名字现有的控制器,这样我们就可以很容易地生成URL对他们以后。例如:生成URL到外部路由与UrlGenerator

$app->get('/gallery', function() {...}) 
    ->bind('gallery'); 

// Later on, in a template 
{{ path('gallery') }} 

我认为这是非常有用的,我不能没有它。

但是有可能注册到外部网站的路线?说我想要生成一个谷歌搜索的网址,种类

{{ path('google', {'search':'symfony'}) }} 
// Would render to http://google.com/search?q=symfony 

我想任何想法:) Thx为您的帮助!

+0

为什么你需要那个?为什么不直接使用纯html?即:'Symfony on Google' – j0k

+2

因为我有几个不同的链接,必须在几个不同的地方使用。而且这些链接在不同的环境中是不同的,所以我不能对它进行硬编码。 – aspyct

+3

所以把这些链接基地进行配置。或者使用您的功能扩展“路径”树枝扩展。 –

回答

2

path()是一根树枝扩展路由。路由是将传入的URL路由到控制器操作。

但是,如果您希望助手轻松创建这些标准传出网址,您可以创建自己的树枝扩展。

看看:http://symfony.com/doc/current/cookbook/templating/twig_extension.html

然后,您可以创建一个变成{{ google('search string') }}为URL的扩展。只有想象力是你的边界。

+0

应该做的。谢谢 :) – aspyct