2016-08-09 5 views
0

私は、CI3.1(CodeIgniter 3.1)で使用するプロジェクトのカスタムライブラリで作業しています。これは、コードの一部です:デフォルト設定がCI3にロードされているかどうかを確認するには?

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['helper'] = ['url']; 
$autoload['config'] = ['navigation']; 
$autoload['model'] = ['nav_model']; 

:私は、時間と、セットアップ次のようにautoload.phpを保存したいときケースだろうか?

私はconfig classのドキュメントの上に見て、あなたがチェックできる便利

+0

アイテムが設定されているかどうかを確認できます。 if(!this-config-item( 'item_open_active_class')){$ this-> config-> load( 'navigation');} ' – Tpojka

答えて

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'); 
関連する問題