17

我正在使用codeigniter 2。

欣赏是否有人可以显示检查以下文件是否正确的方法:
- 库文件已加载?
- 加载了帮助文件?
- 配置文件已加载?
- 模型文件已加载?
- 第三方文件已加载?

问候

4

6 回答 6

24

在调用它之前,您可以使用原生 PHP 函数 class_exists() 来确定该类是否已定义。同样,使用 method_exists() 将检查类方法是否存在。

由于助手是函数而不是方法的集合,因此可以使用 function_exists() 进行检查。

if (class_exists('Library')) 
{
    $this->library->myMethod();
}

如需更多信息,请参阅

http://php.net/manual/en/function.class-exists.php

http://us.php.net/manual/en/function.method-exists.php

于 2013-05-14T06:30:56.177 回答
10

您无需检查,只需将它们加载到您需要确保拥有它们的任何地方。

使用 CI 的加载库 ( $this->load->[library|model|helper]) 将始终只加载一次。如果您打开调试日志记录,您可以看到这一点。

于 2013-05-15T08:43:49.213 回答
7

这是检查已加载库的 codeigniter 方法。

//If the library is not loaded, Codeigniter will return FALSE
if(!$this->load->is_loaded('session'))
{
     $this->load->library('session');
} 
于 2014-06-26T06:47:43.940 回答
2

加载后,您的实例将存储在控制器上,因此要检查模型是否已加载:

if (isset($this->my_model))

$this你的控制器在哪里。

于 2013-12-02T09:57:54.113 回答
1

最好的方法是使用 Codeigniter 的Loader类。Loaderakaload有一个内置的方法is_loadedis_loaded方法检查一个类是否已经被加载。

如果类尚未加载,则is_loaded返回 FALSE,否则返回属性名称。

例子:

$this->load->library('table');
$this->load->is_loaded('table'); //Returns 'table'
$this->load->is_loaded('blabla_library'); //Returns FALSE
于 2017-12-27T06:25:20.993 回答
0

如果你想在加载之前检查库是否存在,你需要按照下面的简单方法。

希望,这会有所帮助。

if(file_exists(DOC_ROOT."application/front/libraries/" . ucfirst($library).".php"){
$this->load->library($library);}else {
echo "No library found";}
于 2020-04-30T12:32:54.240 回答