【问题标题】:Do I have to use get_instance() in every helper function that needs access to native resources?我是否必须在需要访问本机资源的每个辅助函数中使用 get_instance() ?
【发布时间】:2013-12-06 14:16:58
【问题描述】:

我有许多需要访问 get_instance() 的辅助函数。例如,这是一个获取成员列表以在下拉列表中使用的函数:-

function get_members_list()
{
    $EE =& get_instance();
    $EE->load->model('member_model'); 
    // rest of my code 
    return $members_list;
}

我把它放在一个助手中是因为这里有很多额外的代码,我认为这些代码不适合模型,但更适合控制器。然后因为有几个库/控制器正在访问它,我认为将它移动为一个助手。

所以我的问题是,可以在辅助函数中使用 get_instance() 和加载辅助函数吗?我的帮助文件中多次使用了 get_instance(),因为每个函数都需要调用它。

或者有没有办法让助手访问已经加载到加载助手的控制器/库中的 get_instance()?

谢谢

【问题讨论】:

    标签: codeigniter helper


    【解决方案1】:

    我会把它放在图书馆里。

    您如何组织事物实际上取决于个人喜好,但拥有一个图书馆是最有意义的。您可以按数据类型对其进行分组,或者只为键/值数据提供一个库类(用于下拉菜单)。

    【讨论】:

    • 我同意。创建一个引导实例的库,然后自动加载该库,以便它在您的所有控制器中可用。或者,您可以简单地在类的构造函数中获取引用。
    • 我创建了一个助手,因为它包含许多不相关的功能。您是否会创建一个“通用”库,其中包含所有需要 get_instance 的不相关方法或为每个单独的小库?我通常会看到一个具有相关方法的库,而不是做不同事情的通用方法。
    • 这取决于您的应用。在这一点上,你想多了。如果您有其中一些函数,请将它们放在一个库中。如果它开始变大,请创建一堆较小的库(这些库可以从基础库继承,从而使 $CI 可供所有人使用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多