2012-05-29 913 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