Php Codeigniter自定义库或其他解决方案?

Php Codeigniter自定义库或其他解决方案?,php,codeigniter,session,Php,Codeigniter,Session,我正在更新一个持久的登录过程,我在其他几个网站上使用过这个过程来与codeigniter合作,我想就处理这种情况的最佳方法或者是否有我可能忽略的东西获取一些意见 到目前为止,我想到的是扩展控制器类,以确定用户是否已经登录(使用codeigniters会话库),然后如果用户尚未登录,我将查看以确定他们的机器上是否存储了持久cookie。如果他们这样做了,那么我将使用他们的临时密码登录用户(同时重置临时密码并出于安全原因重新创建他们的持久cookie)。这一切都很好 现在我的问题是关于正确的结构和代

我正在更新一个持久的登录过程,我在其他几个网站上使用过这个过程来与codeigniter合作,我想就处理这种情况的最佳方法或者是否有我可能忽略的东西获取一些意见

到目前为止,我想到的是扩展控制器类,以确定用户是否已经登录(使用codeigniters会话库),然后如果用户尚未登录,我将查看以确定他们的机器上是否存储了持久cookie。如果他们这样做了,那么我将使用他们的临时密码登录用户(同时重置临时密码并出于安全原因重新创建他们的持久cookie)。这一切都很好

现在我的问题是关于正确的结构和代码的可重用性。每当用户通过单击登录按钮登录时,也需要上述过程中使用的一些相同功能。目前,我的解决方案是创建一个自定义库,其中包含与用户身份验证/注册/持久登录/登录/注销相关的所有函数,然后从需要该库函数的各个位置调用该库


然而,这件事对我来说是一个危险的信号,我现在起草这个文件的原因是,在这个库中,我需要调用各种模型来操作/获取数据。我知道这是可能的……但这样做会被认为是一种不好的做法吗?有没有可能是我所缺少的解决方案?

在您自己的自定义库中调用其他库和模型非常好。但是,要调用和设置模型/库,不能在库中使用普通的
$this
(即this->load->model('some-model'))

您需要使用
$CI
。为此,在函数的开头设置变量(据我回忆,这必须在函数中,而不是在构造中)。然后,您可以像在控制器中一样调用模型/库。例如:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Login_auth {

    function __construct() {

    }

    function run() {

        $CI =& get_instance();  

        $CI->load->model('some-model');
        $CI->load->library('some-library');

        ....

    }
}

在您自己的自定义库中调用其他库和模型非常好。但是,要调用和设置模型/库,不能在库中使用普通的
$this
(即this->load->model('some-model'))

您需要使用
$CI
。为此,在函数的开头设置变量(据我回忆,这必须在函数中,而不是在构造中)。然后,您可以像在控制器中一样调用模型/库。例如:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Login_auth {

    function __construct() {

    }

    function run() {

        $CI =& get_instance();  

        $CI->load->model('some-model');
        $CI->load->library('some-library');

        ....

    }
}

通过库操作和获取数据一点也不坏。库是对codeigniter的一种自由支配,它意味着即插即用,这样您就可以使用其中的所有codeigniter功能。

通过库操作和获取数据一点也不坏。一个库是对codeigniter的一种自由支配,它意味着即插即用,这样您就能够从其中使用所有codeigniter功能。

我的解决方案有帮助吗?非常有帮助。我已经接受它作为我帖子的答案。我的解决方案有用吗?非常有用。我已经接受它作为我的职位的答案。