首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter自定义函数

CodeIgniter自定义函数
EN

Stack Overflow用户
提问于 2011-09-18 16:43:22
回答 2查看 1.5K关注 0票数 0

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

代码语言:javascript
复制
if (logged_in()) { redirect }

会更有针对性。但对我来说,为一个函数构建一个库似乎是不必要的。我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-18 16:54:09

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

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

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

代码语言:javascript
复制
// 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
EN

Stack Overflow用户

发布于 2011-09-18 16:46:05

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

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

http://codeigniter.com/user_guide/general/helpers.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7460417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档