我正在为CI3.1(CodeIgniter 3.1)中使用的项目的自定义库中工作。这是一段代码:
class NavigationMenu
{
protected $CI;
public function __construct($params = ['config' => 'navigation'])
{
$this->CI =& get_instance();
$this->CI->load->helper('url');
$this->CI->config->load($params['config'], true);
$this->CI->load->model('nav_model', 'nav');
}
....
}
默认配置'navigation.php`文件包含以下代码:
$config['navigation_open'] = '<ul class="nav">';
$config['navigation_close'] = '</ul>';
$config['item_open'] = '<li>';
$config['item_open_active_class'] = 'active';
如您所见,我正在加载url
帮助程序,navigation
配置文件和nav_model
模型。有没有办法检查它们之前是否已加载?当我想节省时间然后按照以下方式设置autoload.php
时可能就是这种情况:
$autoload['helper'] = ['url'];
$autoload['config'] = ['navigation'];
$autoload['model'] = ['nav_model'];
如果是这种情况,我如何检查是否已加载以便不再尝试加载?
我查看了config class的文档,找不到任何有用的内容
答案 0 :(得分:0)
您可以查看目前可用的url
助手中的任何功能,这样您就可以理解已加载帮助程序,或者您应该自己动手:
if(!function_exists('site_url'))
$this->CI->load->helper('url');
如果您需要检查是否已加载任何帮助程序,这是一个简单的技巧,但是如何检查配置/模型加载不太清楚,所以如果您真的想要创建自己的自动加载器,您需要对核心对象($this->CI
)进行类似的检查:
if(!method_exists($this->CI,'nav'))
$this->CI->load->model('nav_model', 'nav');