是否有使用Zend框架創建絕對URL的最佳做法?我想知道是否有一些助手,或者如果這只是將$ _SERVER變量中的方案,主機等連接起來,然後添加由Zend生成的相對路徑。使用Zend框架創建絕對URL的最佳實踐?
回答
phpfour的方式是確定的,但你必須檢查https://開頭,FTP://和郵寄地址:太... :)
我prefefer有所有URL根絕(/files/js/jquery.js
)。該 「鐵桿Zend的方式」 是
<?php
// document root for example.com is in /htdocs
// but application's index.php resides in /htdocs/myapp/public
echo $this->baseUrl('css/base.css');
//will return /myapp/public/css/base.css
echo $this->serverUrl() . $this->baseUrl('css/base.css');
//will return http://www.example.com/myapp/public/css/base.css
echo '//' . $this->getHelper('ServerUrl')->getHost() . $this->baseUrl('css/base.css');
//will return protocol relative URL //www.example.com/myapp/public/css/base.css
我不會使用$ _SERVER,我會使用Zend_Controller_Request_Http::getServer($keyName);
(或者請求對象上的直接獲取方法,這些方法適用時我忘記了哪些是對象的直接成員,哪些需要使用getServer來訪問) 。從技術上講,這些都是完全相同的值,但IMO更好地使用它的Zend方式,而不是使用原始PHP訪問。但是,把它們放在一起應該可以得到你所需要的東西。這實際上是我爲SSL控制器插件/ url助手做的。
有可能是雖然一個更好的辦法...
在我的應用程序,我保持「的baseUrl」在我的應用程序的配置,我賦值給上引導註冊表中。後來我用下面的視圖助手生成的網址:
<?php
class Zend_View_Helper_UrlMap
{
public function UrlMap($original)
{
$newUrl = $original;
$baseUrl = Zend_Registry::get('baseUrl');
if (strpos($newUrl, "http://") === false) {
$newUrl = $baseUrl . $newUrl;
}
return $newUrl;
}
}
好處:我可以在從一個地方的視圖中的所有網址的任何變化。
希望這會有所幫助。
'Zend_Registry'是相當不必要的。更好的方法是使用'Zend_Controller_Front :: setBaseUrl()'和'Zend_Controller_Front :: getBaseUrl()'。這樣,你也可以使用包含的視圖助手,所以你不必自己推出。 – 2009-12-10 18:29:15
沒有MVC
echo $this->serverUrl() . $this->baseUrl('cass/base.css');
或MVC
echo $this->serverUrl() . $this->url(array('controller'=>'index','action'=>'index'),null,true);
使用下面的方法。
<a href="<?php echo $this->url('application', ['action' => 'detail'], ['force_canonical' => true])?>">
- 1. 使用zend框架創建動態邊欄的最佳實踐
- 2. Zend拒絕訪問更改的url參數最佳實踐?
- 3. 最佳實踐:相對URL
- 4. 實體框架的最佳實踐?
- 5. 實體框架4.0創建對象上下文的最佳實踐
- 6. 最佳實踐Zend框架+ Facebook的阿比
- 7. 實體框架最佳實踐
- 8. 實體框架最佳實踐
- 9. Kohana框架 - Ajax實現最佳實踐
- 10. 實體框架和WPF最佳實踐
- 11. Javascript對象創建最佳實踐
- 12. iOS創建對象最佳實踐
- 13. Zend框架2最佳實踐幫手/庫
- 14. 獲取基本URL和絕對路徑的最佳實踐
- 15. 實體框架+「使用」模式的最佳實踐
- 16. Django Rest框架:最佳實踐?
- 17. Spring + JSP url構建最佳實踐
- 18. 實體框架數據建模最佳實踐
- 19. 實體框架 - 建議和最佳實踐
- 20. Postgres架構最佳實踐
- 21. 玩!框架:在單獨的JavaScript文件中使用URL的最佳實踐?
- 22. jQueryUI創建封裝的最佳實踐
- 23. 創建mysql表的最佳實踐
- 24. 創建Web服務的最佳實踐
- 25. 創建許多UIColors的最佳實踐?
- 26. 創建WCF RIA DomainService的最佳實踐
- 27. 使用CFWheels框架時的一些最佳實踐是什麼?
- 28. Zend Framework庫的最佳實踐?
- 29. Cocoa構建需要Apple框架的自定義框架的最佳實踐
- 30. 節點Js最佳框架和最佳實踐
+1,最好在99%的時間內使用標準方法 - Zend Framework已經爲您提供了這一點。如果您需要手動更改網址庫,您也可以自行將其設置在引導程序中。 – 2009-12-10 18:23:02
echo $ this-> serverUrl()。 $這 - >的baseUrl( 'cassbase.css'); (這是絕對使用zend serverurl視圖助手) – 2011-02-19 18:04:07
$ this-> baseUrl返回一個URL相對於Web服務器的根,如下所述:http://framework.zend.com/manual/en/zend.view.helpers .html#zend.view.helpers.initial.baseurl,TMHO這個答案是錯誤的。 – AsTeR 2012-05-15 20:19:23