要检查用户是否已登录,我需要提取相当长的if语句,然后根据用户是否登录重定向用户。我认为像
这样的自定义函数if (logged_in()) { redirect }
会更有用。但是为我建立一个函数库似乎是不必要的。我该怎么办?
答案 0 :(得分:1)
我需要完成一个非常长的if语句,但是为一个函数构建一个库似乎是不必要的
它根本不是“不必要的”,也不是严格“必要”,但为此创建一个库/类可能是一个好主意。
如果你需要使用很多逻辑,例如“一个很长的if语句”,使用类可以帮助你将它分解成更小的部分并使逻辑更易于管理。如果你只需要调用类的一个公共方法,比如$this->auth->is_logged_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;
}
使用类/库有许多好处,并且使用像用户授权这样复杂的东西,您将从中受益很多,特别是一旦您的项目开始扩展并且您需要更多实用程序。
答案 1 :(得分:0)
虽然通常会为与您的应用程序无关的解耦功能保留帮助程序,但我认为在这种情况下它们是合适的。只需创建一个名为is_logged_in
的辅助函数。
要了解有关帮助者的更多信息,请访问文档: