是否有使用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