【问题标题】:Zend Framework: get public path, get application urlZend Framework:获取公共路径,获取应用程序 url
【发布时间】:2023-03-22 01:32:01
【问题描述】:

是否有一些适当的 Zend 方法:

a) 接收到 /public 目录的路径

b) 接收应用程序 url

其实我在使用Controller中定义的方法,但是如果它们退出了,使用ready方法感觉不错。

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

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

【问题讨论】:

    标签: zend-framework url public


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 使用getHTTPPost() 需要包含的类是什么?
      • 在控制器中:调用未定义的方法 Zend\Http\PhpEnvironment\Request::getHttpHost()
      【解决方案3】:
      protected function _getPublicPath() {
          chdir(APPLICATION_PATH);
          return realpath("../public");
      }
      

      【讨论】:

        【解决方案4】:

        a) 接收到 /public 目录的路径

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

        【讨论】:

          猜你喜欢
          • 2012-11-03
          • 2014-11-07
          • 1970-01-01
          • 1970-01-01
          • 2011-09-08
          • 1970-01-01
          • 2012-10-23
          • 2013-05-08
          • 1970-01-01
          相关资源
          最近更新 更多