Zend framework Zend框架:获取公共路径,获取应用程序url
是否有一些适当的Zend方法用于: a) 接收到/public目录的路径 b) 接收应用程序url 实际上,我使用的是控制器中定义的方法,但如果它们存在,则使用ready方法是正确的Zend framework Zend框架:获取公共路径,获取应用程序url,zend-framework,url,public,Zend Framework,Url,Public,是否有一些适当的Zend方法用于: a) 接收到/public目录的路径 b) 接收应用程序url 实际上,我使用的是控制器中定义的方法,但如果它们存在,则使用ready方法是正确的 protected function _getApplicationUrl() { return $_SERVER['SERVER_NAME']; } protected function _getPublicPath() { return realpath(APPLICATION_PATH .
protected function _getApplicationUrl() {
return $_SERVER['SERVER_NAME'];
}
protected function _getPublicPath() {
return realpath(APPLICATION_PATH . '/../public/');
}
关于应用程序URL,
Zend\u Controller\u Request\u Http
有一个getRequestUri()
方法,但它故意(有些令人沮丧地)排除了URL的方案和主机名部分。在我的应用程序中,我求助于在引导程序中获取$\u SERVER['HTTP\u HOST']
,并将其存储在注册表中,以便以后构建完整URL时使用
从内存来看,不,没有任何内置方法可以获取public
文件夹的位置,但是您拥有的代码很好。我见过的大多数应用程序define()
都是index.php
中的所有路径,我认为这稍微安全一点(只是因为路径名设置得更快,变得绝对不可变),而且速度稍微快一点,但让我们不要讨论微优化问题吧:-) 1)如果您的虚拟主机指向ZF/public,那么在视图中,您可以通过helper方法$this->baseUrl()获取路径代码>在控制器中$this->view->baseUrl()代码>否则创建自己的助手并使用它。
2) 在控制器$this->getRequest()->getHttpHost()中代码>
a) 接收到/public目录的路径
内置php函数将为您提供站点主机文件夹的路径(例如输出“/home/my\u cp/public\u html/my\u site.loc/www”)。然后,你可以构建任何你想要的路径 使用getHTTPPost()
时要包含的类是什么?在控制器中:调用未定义的方法Zend\Http\PhpEnvironment\Request::getHttpHost()
protected function _getPublicPath() {
chdir(APPLICATION_PATH);
return realpath("../public");
}