Bir yapılandırma dosyası kullanmak doğru yolu?

3 Cevap php

Ben sadece bir PHP çerçeve, Kohana (V2.3.4) kullanmaya başladım ve benim denetleyicileri her biri için bir yapılandırma dosyası kurmak için çalışıyorum.

Ben daha önce bir çerçeve hiç kullanmadım, bu yüzden açıkça Kohana benim için yeni. Benim config dosyasını okumak için benim denetleyicileri ayarlamak nasıl merak ediyordum.

Örneğin, ben bu denetleyici için bir makale denetleyicisi ve bir config dosyası var. Ben yükleme yapılandırma ayarları 3 yolu var

// config/article.php
$config = array(
    'display_limit'         => 25, // limit of articles to list
    'comment_display_limit' => 20, // limit of comments to list for each article
    // other things
);

Should I

A) ayarları bir diziye herşeyi yükleyin

// set a config array
class article_controller extends controller{

    public $config = array();

    function __construct(){
        $this->config = Kohana::config('article');
    }       
}

B) Yük ve kendi özelliği olarak her ayarını

// set each config as a property
class article_controller extends controller{

    public $display_limit;
    public $comment_display_limit;

    function __construct(){
        $config = Kohana::config('article');

        foreach ($config as $key => $value){
            $this->$key = $value;
        }
    }
}

Yalnızca gerektiğinde C) her ayar yükleyin

// load config settings only when needed
class article_controller extends controller{

    function __construct(){}

    // list all articles
    function show_all(){
        $display_limit = Kohana::config('article.display_limit');
    }

    // list article, with all comments
    function show($id = 0){
        $comment_display)limit = Kohana::config('article.comment_display_limit');
    }
}

Not: Kohana :: config () öğeleri bir dizi döndürür.

Teşekkürler

3 Cevap

Eğer bir denetleyici için yapılandırma öğeleri bir grup okuyorsanız, sınıf üyesi saklayabilirsiniz ($this->config), tek bir yapılandırma öğesi okurken eğer; tek tek okudum.

Ben daha az kod vardır ve amacı para cezası vermektedir, ilk yöntem, (A) ince olması gerektiğini düşünüyorum.

Eğer "her yerde" den erişmek istediğiniz site geniş şeyler varsa, bunu yapmanın başka bir yolu gibi bir şey koymak olabilir:

Kohana::$config->attach(new Kohana_Config_File('global'));

bootstrap.php içinde. Sonra gibi bir şey ile application / config dizininde global.php oluşturun:

return (array ('MyFirstVar' => 'Is One',
               'MySecondVar' => 'Is Two'));

Ve sonra sizin kod ihtiyacınız olduğunda:

Kohana::config ('global.MyFirstVar');

Ama tüm bu aşağı bunu kullanmak istediğiniz nerede ve nasıl gelir varsayalım.