如何欺骗Zend认为请求是从另一个目录而不是默认的index.php调度的

时间:2010-01-03 16:36:19

标签: php zend-framework

我正在尝试使用插件将Wordpress与我的Zend应用程序集成,并且除了一件事情之外它运行得很好:基本网址。我的wordpress插件在/ myapplication / libray / wordpress中调用我的应用程序引导程序中的集成函数。因此,请求基本URL被设置为整个应用程序的此值。我想欺骗Zend认为请求是从/ myapplication / public发送的,以便它可以相应地检测基本URL。当然,$ request-> setBaseUrl('/ myapplication / public')将是一种简单的方法,但这会让我在博客将托管在blog.myapplication.com上的生产方面感到困扰,并且基本网址将在哪里被映射到/并且不会造成问题。我不想破解并根据应用程序环境放置条件。

有一种优雅的方式来做到这一点。我尝试使用请求对象和$ _SERVER变量,例如REQUEST_URI,SCRIPT_NAME SCRIPT_FILENAME PHP_SELF,但我似乎无法使其工作。也许我需要使用一个Route对象,如果有的话,有人可以解释一下,因为在这种情况下我似乎没有最大限度地理解这个概念。

1 个答案:

答案 0 :(得分:1)

为什么不根据$request->setBaseUrl()常量进行APPLICATION_ENV诀窍?

if (APPLICATION_ENV != 'production') {
  $request->setBaseUrl('/myapplication/public'); 
}

或者更好 - 在开发计算机上设置虚拟主机以模拟实际的生产设置。