Zend Framework:获取公共路径,获取应用程序URL

时间:2012-02-22 01:17:44

标签: zend-framework url public

是否有适合的Zend方法:

a)接收/ public目录的路径

b)接收申请网址

实际上我正在使用Controller中定义的方法,但是如果它们退出则使用就绪方法是正确的。

protected function _getApplicationUrl() {
    return $_SERVER['SERVER_NAME'];
}

protected function _getPublicPath() {
    return realpath(APPLICATION_PATH . '/../public/');
}

4 个答案:

答案 0 :(得分:6)

关于应用程序网址,Zend_Controller_Request_Http有一个getRequestUri()方法,但它故意(有点令人沮丧)排除了网址的方案和主机名部分。在我的应用程序中,我已经在引导程序中抓取$_SERVER['HTTP_HOST']并将其存储在注册表中,以便我可以在构建完整URL时使用它。

从内存来看,没有,没有任何内置方法来获取public文件夹的位置,但是你拥有的代码很好。大多数应用程序我见过define() index.php中的所有路径,我认为这些路径稍微安全一些(仅因为路径名称更快设置并且变得绝对不可变)并且速度稍微快一点,但不要进入关于微优化的辩论! : - )

答案 1 :(得分:3)

1)如果您的虚拟主机指向ZF / public,那么在View中您可以通过辅助方法$this->baseUrl();获取路径在控制器$this->view->baseUrl();中,否则创建自己的帮助程序并使用它。 2)在控制器$this->getRequest()->getHttpHost();

答案 2 :(得分:1)

  

a)接收/ public目录的路径

内置的php-function getcwd()将为您提供站点 - 主机文件夹的路径(例如输出" /home/my_cp/public_html/my_site.loc/www")。然后,您可以构建您想要的任何路径。

答案 3 :(得分:0)

protected function _getPublicPath() {
    chdir(APPLICATION_PATH);
    return realpath("../public");
}