我正在为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
helper、navigation
配置文件和nav_model
模型。是否有办法检查它们之前是否已经装载过?当我想节省时间,然后按如下方式设置autoload.php
时,可能会出现这种情况:
$autoload['helper'] = ['url'];
$autoload['config'] = ['navigation'];
$autoload['model'] = ['nav_model'];
如果是这种情况,我如何检查是否已加载,以避免再次加载?
我已经看了配置类的文档,没有找到任何有用的
您可以检查url
helper中可用的任何功能,因此您将能够理解helper是否加载或您应该自己做:
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');