2012-05-01 10 views
2

IamがOpenCartのコードを参照していました。ライブラリクラスファイルが見つかりました。 config.class.php。ここOpenCart configクラスはどのように機能しますか?

はコードです:

public function load($filename) 
{ 
    $file = SYS_CONFIG_DIR . $filename . '.php'; 
    if(file_exists($file)) 
    { 
     $cfg = array(); 
     require($file); 
     $this->data = array_merge($this->data, $cfg); 
    } 
    else 
    { 
     trigger_error('Error: Could not load config ' . $filename . '!'); 
     exit(); 
    } 
} 

私はそれが最初のファイルが存在するかどうかを確認しようと見ることができます。 aは配列としてvar($ cfg)を作成します。ファイルが必要です。それをマージします。これは私が理解しないところです。

$this->data = array_merge($this->data, $cfg); 

私はこのクラスにロードしているので、私の設定ファイルです。どのように私はそれがこのシステムの設定クラスとそれをマージすることができるようになるでしょうか?

答えて

3

PHP documentation of array_mergeを見て、それがどのように機能するかを、正確に言う:

入力配列が同じ文字列のキーを持っている場合は、そのキーの後の値は、前のものを上書きします。しかし、配列に数字キーが含まれている場合、後の値は元の値を上書きしませんが、追加されます。

これは基本的に、あなたの設定(後で読み込まれる)に空の$cfg配列を持つことができ、何もしないことを意味します。あなたが設定配列にいくつかの変数を設定した場合:

$cfg = array(); 
$cfg["var"] = "value"; 

を(それは以前に設定されていない場合)には、新しい設定を作成するか、またはそのような設定を上書きします。

もちろん、の後に別の設定をロードすると、両方の設定で設定されている値を上書きします。最後の1勝

1

基本的にphpファイルを作成し、キー値のペアで$ cfg配列を定義する必要があります。例

<?php 

$cfg['some_var'] = 'value'; 
$cfg['som_other_var'] = 'some other value';