仅在一个地方加载网站全局变量并在任何地方使用

时间:2013-02-25 12:30:06

标签: php codeigniter global-variables

如何加载application/config/site_globals.php来获取变量并在每个控制器中使用它们(与钩子相同的位置)而不在每个控制器中启动它?我需要使用变量,并不希望将它们保存在会话中。

这就是我们通常启动它的方式:

$this->load->config('site_globals');
$my_globals = $this->config->item('site');
echo $my_globals['header_note']; //for example, there are many more

上面的代码必须在每个控制器中复制,这很痛苦。

由于

3 个答案:

答案 0 :(得分:3)

application / config / constant.php文件用于此目的。

答案 1 :(得分:1)

创建一个扩展CI_Controller的MY_Controller,在MY_Controller构造函数中加载你的全局变量,然后确保所有其他控制器扩展MY_Controller而不是CI_controller。

请参阅文档:http://ellislab.com/codeigniter/user-guide/general/core_classes.html

对于记录,可以对所有核心类进行相同的操作,即MY_Session,MY_Model等。如果您使用它们,重复代码会更容易。

答案 2 :(得分:1)

    class Custom_Controller extends CI_Controller
{

  $this->load->config('site_globals');
  $my_globals = $this->config->item('site');
  echo $my_globals['header_note'];
}

然后,在每个控制器中,您需要使用这些全局变量,您可以使用它,例如:

    class Example extends Custom_Controller
{

  //your code here
}