如何检查CI3中是否已加载默认配置?

时间:2016-08-09 02:50:49

标签: php codeigniter codeigniter-3

我正在为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的文档,找不到任何有用的内容

1 个答案:

答案 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');