Php 在Codeigniter 2中,如何将库加载到可以在助手函数中使用的全局变量中?

Php 在Codeigniter 2中,如何将库加载到可以在助手函数中使用的全局变量中?,php,codeigniter,Php,Codeigniter,因此,我有以下文件: 库/foo_library.php helpers/foo_helper.php views/main.php 现在我的问题是: 我创建的库将在每次页面加载时使用数百次,因为它用于确定语言并根据数据库中存储的语言返回正确的项 <?=$this->foo_library->language('English');?> 现在,当以这种方式使用它时,它工作得很好,不过因为我将在视图中使用它进行其他语言操作,所以我创建了一些帮助函数,以使视图看起来更干

因此,我有以下文件:

库/foo_library.php

helpers/foo_helper.php

views/main.php

现在我的问题是: 我创建的库将在每次页面加载时使用数百次,因为它用于确定语言并根据数据库中存储的语言返回正确的项

<?=$this->foo_library->language('English');?>

现在,当以这种方式使用它时,它工作得很好,不过因为我将在视图中使用它进行其他语言操作,所以我创建了一些帮助函数,以使视图看起来更干净

<?=sl('English words','Other language words')?>

现在这在一定程度上是可行的,尽管每次运行函数时,助手都会从库中创建一个新对象(基本上使用$CI=&get\u instance()方法调用库)

这是一个问题,因为在创建库时,它会将数据保存到内存中,因此不需要继续查询数据库。因此,当对象一次又一次地被重新创建时,它完全违背了目的


所以我想知道,有没有什么干净的方法可以让我创建一个可以在项目中任何地方使用的库对象,包括帮助函数,并保持它的持久性?(库使用CI中的db builder类)

您可以在Codeigniter上自动加载某些元素,以便全局访问它们

可以自动加载以下项目:

在中的库/目录帮助文件中找到的类 在config/目录中找到helpers/目录自定义配置文件 在中的system/Language/directory Models中找到语言文件 模型/文件夹


我尝试过这样做,但在从视图调用helper函数时,每次它都会重新创建实际的库对象,但我不知道为什么。我还必须在函数中执行get_instance()操作,即使人们认为它仍然是从视图加载的:(我能想到的唯一一件事是为codeigniter使用某种依赖注入或IOC系统。目的是重用对象。我真的认为自动加载程序会在某些方面为您做到这一点。依赖注入不是个坏主意,可能需要创建一个对象来做到这一点,所以我最终会得到5个对象去图书馆,不过我会看看我能做些什么。谢谢