php – 在CodeIgniter中添加新库
我刚开始学习CodeIgniter,我正在按照nettuts进行
this认证教程.我不明白其中的一件事:
他在Welcome控制器中添加了以下构造函数代码,只有在Session具有可变用户名时才能访问它,否则它将重定向到管理控制器. function __construct() { session_start(); parent::__construct(); if ( !isset($_SESSION['username'])){ redirect('admin'); } } 他说:
这是否意味着,我应该 >在应用程序/库中创建一个文件(例如,auth.php) . if ( !isset($_SESSION['username'])){ redirect('admin'); } 现在如何自动加载这个库,并在每次加载控制器时使其运行,如他所说的那样? 解决方法
1)自动加载一个库,只需将它添加到文件application / config / autoload.php中的数组中,查找’library’部分并粘贴库的名称(不带扩展名),作为数组的元素.
$autoload['libraries'] = array ('auth'); 2)我建议你使用原生会话处理程序(会话库),它工作得很好,避免你使用php $_SESSION.您设置宽度$this-> session-> set_userdata(array(‘username’=>’User1′,’logged’=>’true’),然后使用$this->检索值session-> userdata [‘logged’],例如. 像魅力一样工作,不必调用session_start()等.去检查帮助,因为它真的非常清楚. 3)至于你的问题,我会选择“钩子”.有不同的钩子,取决于他们的“位置”,即你打电话给他们的那一刻. 你可以使用,例如’post_controller_constructor’,它在控制器初始化之后但在方法之前调用,因此它位于构造函数和实际方法之间.我通常在这里插入这些控件. 你在application / config / hooks.php中定义了钩子,给它们一个数组: $hook['post_controller_constructor'] = array( 'class' => 'Auth','function' => 'check','filename' => 'auth.php',filepath' => 'hooks','params' => array() ); 无论如何,对于所有这些需求,文档非常明确和直接,我建议你阅读钩子和会话,你会看到一切都变得更加清晰! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |