检查CodeIgniter中是否加载库/帮助程序/核心文件的正确方法是什么

问题描述 投票:0回答:6

我正在使用 Codeigniter 2。

如果有人可以展示检查以下文件的正确方法,请感激不已:

  • 库文件已加载?
  • 帮助文件已加载?
  • 配置文件已加载?
  • 模型文件已加载?
  • third_party 文件已加载?
php codeigniter configuration declaration
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


10
投票

您不必检查,只需将它们加载到您需要的任何地方即可。

使用 CI 的 Load 库 (

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


8
投票

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

//If the library is not loaded, Codeigniter will return FALSE
if(!$this->load->is_loaded('session'))
{
     $this->load->library('session');
} 

2
投票

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

if (isset($this->my_model))

其中

$this
是您的控制器。


1
投票

最好的方法是使用 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

0
投票

如果您想在加载前检查库是否存在,您需要遵循以下简单的方法。

希望,这会有所帮助。

if(file_exists(DOC_ROOT."application/front/libraries/" . ucfirst($library).".php"){
$this->load->library($library);}else {
echo "No library found";}
© www.soinside.com 2019 - 2024. All rights reserved.