1

我到处看了看,但仍然无法弄清楚如何在 PHP(锂框架)中设置全局变量。

我的目标是让服务器根始终可在任何地方访问,而不必每次都编写此代码,以使我的应用程序独立于它运行的主机名:

<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>

请不要告诉我只使用绝对路径或相对路径,因为我已经尝试过所有方法,而且它太混乱了(除了大部分时间都不起作用)。

4

2 回答 2

3

看起来您上面的代码在模板中。所以你可以$this->request()->to('url')用来获取当前的url。或者来自控制器,它将是$this->request->to('url'). 您也可以传递'absolute' => trueRouter::match. 不幸的是,html 链接助手 - 即$this->html->link(...)- 不会将'absolute' => true选项传递给 ,Router::match但您可以调用$this->url()传递给Router::match. 所以它会$this->url('/relative/url', array('absolute' => true))

请参阅Router::match 的文档

Request对象还提供对 http 主机和请求 uri 等内容的访问。请参阅文档Request::env()

但是,就您关于全局变量的原始观点而言,我认为应该使用Environment类。您可以将任意数据放入其中 - 甚至在您的引导程序中将其设置为针对不同环境(即开发与登台与生产)具有不同的值。

于 2012-07-16T17:27:00.887 回答
0

抱歉,但使用相对路径并使用链接生成器帮助程序,它不会得到你试图做错的事情。

请参阅文档

于 2012-07-16T15:43:19.883 回答