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