Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter自定义函数_Php_Mysql_Codeigniter - Fatal编程技术网

Php CodeIgniter自定义函数

Php CodeIgniter自定义函数,php,mysql,codeigniter,Php,Mysql,Codeigniter,要检查用户是否登录,我需要拉出一个相当长的If语句,然后根据用户是否登录重定向用户。我认为像这样的自定义函数 if (logged_in()) { redirect } 这将更具专用性。但是为一个函数构建一个库对我来说似乎没有必要。我该怎么办 虽然帮助程序通常是为与应用程序无关的解耦功能保留的,但我认为在这种情况下它们是合适的。只需创建一个名为is\u logged\u的助手函数 要了解有关帮助者的更多信息,请访问以下文档: 我需要编写一个相当长的if语句,但是为一个函数构建一个库似乎没有必

要检查用户是否登录,我需要拉出一个相当长的If语句,然后根据用户是否登录重定向用户。我认为像这样的自定义函数

if (logged_in()) { redirect }

这将更具专用性。但是为一个函数构建一个库对我来说似乎没有必要。我该怎么办

虽然帮助程序通常是为与应用程序无关的解耦功能保留的,但我认为在这种情况下它们是合适的。只需创建一个名为
is\u logged\u的助手函数

要了解有关帮助者的更多信息,请访问以下文档:

我需要编写一个相当长的if语句,但是为一个函数构建一个库似乎没有必要

它根本不是“不必要的”,也不是严格意义上的“必要的”,但是为它创建一个库/类可能是一个好主意

如果您需要处理很多逻辑,例如“相当长的If语句”,使用类可以帮助您将其分解为更小的部分,并使逻辑更易于管理。如果您只需要调用类的一个公共方法,比如
$this->auth->is\u logged\u in()
,这没有什么问题,那么您可以创建一个小的帮助文件或包装函数来调用该方法,并将重定向逻辑放在那里而不是类。也许是这样的:

// Make sure your "auth" library is autoloaded or load it here
function logged_in($redirect = TRUE)
{
    $CI =& get_instance();
    $logged_in = $CI->auth->is_logged_in();

    // Redirect the user...
    if ( ! $logged_in AND $redirect)
    {
        redirect('somewhere/else/');
    }

    // Or just check if they are logged in
    return $logged_in;
}

使用类/库有很多好处,对于像用户授权这样复杂的东西,您将从中受益匪浅,尤其是当您的项目开始扩展并且您需要更多的实用程序时。

我假设您已经构建了自己的身份验证库来达到这个阶段?在这种情况下,您可以向该库添加一个
is\u logged\u
函数。不,我没有。我一直在使用回调函数检查用户名是否可用,例如在注册时。就我个人而言,我会将其命名为
require\u login()
,或者从该函数中删除重定向,我总是希望名为
logged\u in()
的函数只返回true或false。