2011-02-17 46 views
1

我有一個關於zend應用程序中urls的最佳實踐的問題。 我的應用程序將運行在兩個不同的上下文(Facebook和獨立)。 通常我的baseUrl是空的。但是,當在Facebook(作爲畫布應用程序)中運行時,我將我的baseUrl設置爲「apps.facebook.com/xxx」...但也有例外。大多數情況下,我想要新的baseUrl,但有時我不需要。目前我剝離出的baseUrl,當我不需要它......如何在調用url視圖幫助程序時有時切換baseUrl

在此先感謝

回答

1

可以在例如修改的baseUrl您的觀點如下:

<?php 
    // save current base 
    $oldBase = $this->getHelper('baseUrl')->getBaseUrl(); 

    // set a new one for a short time 
    echo $this->getHelper('baseUrl')->setBaseUrl('new/base/')->baseUrl('link'); 

    // restore the original base 
    $this->getHelper('baseUrl')->setBaseUrl($oldBase); 
?> 

請務必記住保存並恢復baseUrl的原始基礎。否則,所有佈局可能無法正常工作,因爲幫助者'記住'他們的狀態,並且您不想在系統範圍內更改基礎。希望這會有所幫助。

+0

應用程序可以爲程序員做這件事情會更好嗎?也許應用程序應該記住*關於這些東西:) – takeshin 2011-02-19 13:10:24

0

最好的選擇是繼承BaseUrl視圖幫助器,並在需要自定義值時使用擴展的幫助器。