Kişisel Bir Web Günlüğü

eburhan Config class

eburhanWeb sitenizin ayarlarını tek bir noktadan yönetmek istiyorsanız veya herhangi bir PHP sınıfının içindeki ayarların sorumluluğunu başka bir sınıfa yüklemek istiyorsanız şimdi tanıtacak olduğum yeni sınıfım işinize yarayabilir.

Bu sınıf nedir, ne işe yarar?

Array tipinde tutulmakta olan ayarlar üzerinde kolayca erişim sağlayan, ayarlar üzerinde güncelleme ve silme işlemleri yapabilen pratik bir php sınıfıdır. Amacı ayar yönetimini kolaylaştırmaktır. PHP 5 ve yukarısı gerektirir. Belli başlı özellikleri şöyledir:

  • Seçeneklere get('conf.database.mysql.user') şeklinde erişebilmenizi sağlar
  • Geçerli ayarlar üzerine yeni ayarlar ekleyebilmenizi sağlar
  • del('conf.database') şeklinde istediğiniz ayarlar içerisinden istediğinizi silebilirsiniz
  • Ayarların istediğiniz bir bölümünü kolayca güncelleyebilmenizi sağlar
  • Sık erişilen ayarlara daha hızlı ulaşım için dahili önbellekleme (cache) özelliği vardır
  • İstenildiği takdirde ayarların objeye dönüştürülmesini sağlayabilir

Nasıl kullanılır?

Diyelimki web sitenizin veritabanı ayarlarını ayarlar.php isimli bir dosyada aşağıdaki gibi tutuyorsunuz.

<?php
return array(
    'type' => 'mysql',
    'conf' => array(
        'name' => 'mydatabase',
        'user' => 'root',
        'pass' => '1234567',
        'host' => array(
            '127.0.0.1',
            '88.67.45.123',
            '129.34.123.55'
        ),
        'port' => '3306'
    )
);

eburhan Config class ile bu dosyadaki ayarlara şu şekilde erişebiliyorsunuz:

<?php
require_once 'Config/Config.php';

// bütün ayarları bir dosyadan çağırıyoruz
$ayarlar = require 'ayarlar.php';
$ayarlar = Config::getInstance()
                ->set($ayarlar)
                ->as_object()
                ->get();

print '<pre>';
print_r( $ayarlar->conf );
print '</pre>';

bu kodların çıktısı şöyle olacaktır:

stdClass Object
(
    [name] => mydatabase
    [user] => root
    [pass] => 1234567
    [host] => stdClass Object
        (
            [0] => 127.0.0.1
            [1] => 88.67.45.123
            [2] => 129.34.123.55
        )

    [port] => 3306
)

Özetlersek…

Bu sınıf sayesinde normalde $ayarlar['conf']['database']['mysql']['user']; şeklinde erişebileceğiniz bir ayara conf.database.mysql.user şeklinde erişebiliyorsunuz. Eğer bu sınıfın neler yapabileceğini kafanızda net olarak oluşmadıysa lütfen eBurhan Araçları sayfasından sınıf dosyasını indirin ve içerisindeki dökümana gözatın. Dökümanda bundan çok daha fazlası var. Faydalı olması dileğiyle ;)

10 Eylül 2010 Programlama Bugün 2 kez, toplamda ise 8.365 kez okundu. , , , ,
3 yorum var
  1. Erhan Yine guzel bir is cikarmissin bunu kendi frameworkumda kullanacagim sade ve basit bir yol olmus eline saglik

  2. Ellerine sağlık Erhan hocam küçük bir öneride bulunmak istiyorum sınıf içerisinde __invoke metodu eklenip direk sınıfı yüklediğimiz değişkeni metod gibi kullanarak daha kolay erişim sağlasak uygun olurmu?

İçinizde kalmasın, siz de yorum yazın

Telif Hakkı © 2012 eburhan.com | Structure | XHTML