我使用笨2.笨正确的方法来检查,如果库/帮手/ core文件被加载
感激,如果有人能证明正确的方法来检查,如果下列文件:
- 库文件加载?
- 帮助文件被加载?
- 配置文件被加载?
- 模型文件被加载?
- third_party文件被加载?
问候
我使用笨2.笨正确的方法来检查,如果库/帮手/ core文件被加载
感激,如果有人能证明正确的方法来检查,如果下列文件:
- 库文件加载?
- 帮助文件被加载?
- 配置文件被加载?
- 模型文件被加载?
- third_party文件被加载?
问候
您可以使用本机PHP函数class_exists(),以确定是否调用它之前类已经被定义, 。同样,使用method_exists()将检查类方法是否存在。
由于帮助程序是函数的集合,而不是方法,因此可以使用function_exists()完成检查。
if (class_exists('Library'))
{
$this->library->myMethod();
}
如需进一步信息,请参阅
感谢您的指导:) – user1884324 2013-05-14 06:40:27
这是正确的方法来检查,但如果原因检查是包括图书馆,然后不要使用这个。我做了一个基准,证明默认的Codigniter加载库的方式是最好的方法。看这里:http:// stackoverflow。com/questions/19630019/codeigniter-load-libraries-if-not-already-loaded/23597257#23597257 – 2014-05-12 15:03:07
你不必去检查,你只加载它们你需要的地方一定有他们。
使用CI的加载库($this->load->[library|model|helper]
)将始终只加载一次。如果打开调试日志记录,可以看到这一点。
您确定吗?我包含会话库几次,使用的内存显着增加,我只是测试了它。 Codeigniter错误? – 2014-05-11 19:18:56
查看Loader.php并搜索'第二次尝试被忽略'(注意:如果您提供自定义名称,它将创建一个新实例)。 – minboost 2014-05-12 06:16:14
你说得对,Codeigniter的方式是最有效的方法,我做了一点基准 – 2014-05-12 14:48:46
一旦加载您的实例是在控制器上存储,所以要检查如果模型已加载:
if (isset($this->my_model))
其中$这是你的控制器。
这是codeigniter方法来检查加载的库。
if($this->load->is_loaded('session')
{
$this->load->library('session');
}
最好的方法是使用Codeigniter的Loader
类。 Loader
又名load
具有内置方法is_loaded
。 is_loaded
方法检查一个类是否已经被加载。
如果该类尚未加载,则is_loaded
返回FALSE,否则返回属性名称。
例子:
$this->load->library('table');
$this->load->is_loaded('table'); //Returns 'table'
$this->load->is_loaded('blabla_library'); //Returns FALSE
当你故意错误地加载它,会发生什么?你有任何CI错误吗?因为你应该。 – qwertzman 2013-05-15 08:54:45
不要检查,只需加载,Codeigniter有自己确定它的有效方法。看看这里:http://stackoverflow.com/questions/19630019/codeigniter-load-libraries-if-not-already-loaded/23597257#23597257 – 2014-05-12 15:04:57