2009-12-10 20 views

cevap

24

phpfour yoludur Tamam, ama https kontrol etmek zorunda: //, ftp: // ve mailto: Çok ... :)

Bütün URL'ler kök mutlak (/files/js/jquery.js) sahip prefefer. "Hardcore zend yol" mvc

echo $this->serverUrl() . $this->baseUrl('cass/base.css'); 

olmadan veya mvc

echo $this->serverUrl() . $this->url(array('controller'=>'index','action'=>'index'),null,true); 
+1

+ 1, standart yaklaşım% 99'unu kullanmak en iyisidir - Zend Framework zaten sizin için bunu içerir. URL tabanını manuel olarak değiştirmeniz gerekirse, bunu bootstrapte de ayarlayabilirsiniz. –

+2

echo $ this-> serverUrl(). $ This-> baseURL ('cassbase.css'); (bu, zend serverurl view helper kullanılarak mutlaktır) –

+0

$ this-> baseUrl, burada belirtildiği gibi web sunucusunun köküne göre bir URL döndürür: http://framework.zend.com/manual/en/zend.view.helpers .html # zend.view.helpers.initial.baseurl, TMHO bu yanıt yanlış. – AsTeR

0

$ _SERVER'i kullanmazdım, Zend_Controller_Request_Http::getServer($keyName); değerlerini kullanırım (veya geçerli olduğunda istek nesnesindeki doğrudan alıcılar - hangisinin nesnenin doğrudan üyeleri olduğunu ve hangilerinin getServer ile erişilmesi gerektiğini unutmayın) . Teknik olarak bunlar tam olarak aynı değerlerdir, ancak IMO, ham PHP erişimini kullanmaktan daha iyi bir şekilde Zend yoluna erişir. Ama evet, onları bir araya getirip, ihtiyacınız olanı almalıyım. Bu aslında bir SSL denetleyici eklentisi/url yardımcı için yaptım.

benim uygulamalarda

2

, benim uygulama yapılandırmasında "baseURL" tutmak ve bunu ön yükleme ile ilgili kayıt defterine atamak ... gerçi daha iyi bir yol yoktur olabilir. Daha sonra URL'yi oluşturmak için aşağıdaki Görünüm Yardımcısı kullanın:

<?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; 
    } 
} 

Fayda: Ben bir yerden görünümdeki tüm URL'ler üzerinde herhangi bir değişiklik yapabilir.

Bu yardımcı olur umarım.

+2

'Zend_Registry' oldukça gereksizdir. Daha iyi bir yaklaşım, Zend_Controller_Front :: setBaseUrl() 've' Zend_Controller_Front :: getBaseUrl() 'işlevini kullanır. Bu şekilde, dahil olan görüntü yardımcısını da kendi başınıza döndürmek zorunda kalmadan kullanabilirsiniz. –

13

olduğunu.

<a href="<?php echo $this->url('application', ['action' => 'detail'], ['force_canonical' => true])?>">

-1

aşağıdaki yöntemi kullanın ile

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