是否有适合的Zend方法:
a)接收/ public目录的路径
b)接收申请网址
实际上我正在使用Controller中定义的方法,但是如果它们退出则使用就绪方法是正确的。
protected function _getApplicationUrl() {
return $_SERVER['SERVER_NAME'];
}
protected function _getPublicPath() {
return realpath(APPLICATION_PATH . '/../public/');
}
答案 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");
}