要检查用户是否已登录,我需要执行一个相当长的If语句,然后根据用户是否已登录来重定向用户。我认为像这样的自定义函数
if (logged_in()) { redirect }会更有针对性。但对我来说,为一个函数构建一个库似乎是不必要的。我该怎么办?
发布于 2011-09-18 16:54:09
我需要完成一个相当长的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;
}使用类/库有很多好处,对于像用户授权这样复杂的事情,您将从利用它中受益良多,特别是当您的项目开始扩展并且您需要更多实用程序时。
发布于 2011-09-18 16:46:05
虽然帮助器通常是为与应用程序无关的解耦函数保留的,但我认为在这种情况下它们是合适的。只需创建一个名为is_logged_in的帮助器函数。
要了解有关帮助器的更多信息,请访问文档:
http://codeigniter.com/user_guide/general/helpers.html
https://stackoverflow.com/questions/7460417
复制相似问题