我想保存一些全局变量以在网站中使用,例如当前用户 ID、当前用户杠杆等。最好的地方在哪里,或者有可能吗?
将其设置为 constants.php 不起作用,因为那里无法识别“$this”。
我想要这个的主要原因是因为我不喜欢使用会话(我认为写字符串$this->session->userdata('session_name')
不太实用,写像 CURR_UID 这样的东西更容易做到,也更容易阅读)
我想保存一些全局变量以在网站中使用,例如当前用户 ID、当前用户杠杆等。最好的地方在哪里,或者有可能吗?
将其设置为 constants.php 不起作用,因为那里无法识别“$this”。
我想要这个的主要原因是因为我不喜欢使用会话(我认为写字符串$this->session->userdata('session_name')
不太实用,写像 CURR_UID 这样的东西更容易做到,也更容易阅读)
在这种情况下,您可以做的是创建一个class My_Controller extends CI_Controller
. 在实际加载任何特定控制器功能之前,整理出您需要的所有功能。
然后您创建的任何后续课程都可以执行:class Whatever extends My_Controller
.
编辑:我忘了提到你应该把My_Controller
类放在 Application > Core 文件夹中。
这是可能的,但这不是 Codeigniter 的设计方式。会话确实是这种事情的地方(即,从一个页面视图持续到下一个页面视图的内容),但如果你愿意,你可以将会话调用包装在一个库中以美观。像这样的东西:
// in libraries/User.php
class User {
protected $ci;
public function __construct() {
$this->ci = &get_instance();
}
public function id() {
return $this->ci->session->userdata('user_id');
}
// etc, etc.
}
一旦您编写了更多的帮助程序,例如id()
,您就可以使用它们来访问应用程序中其他地方的相关变量:
$this->load->library('user');
echo 'Current user ID is: ' . $this->user->id();