TitanDB query builder kütüphanesini yayınladıktan sonra, sizlerden bu kütüphanenin Titan Framework ile kullanımı konusunda sorular aldım. Bu yazımda, TitanDB'nin frameworke nasıl entegre edileceğini anlatacağım.

Titan Framework içerisinde bulunan model yapısı, basit ve static bir query builder sınıfından oluşuyor. Yani "/app/models" dizini içerisinde oluşturulan model dosyaları, "/system/core" dizinindeki Model sınıfından extend ediliyor ve bu sınıf query builder kütüphanesini barındırıyor. TitanDB ise static bir nesne değildir ve kullanmadan önce tanımlanması gerekir. Bu sebeple frameworkün model yapısında birkaç değişiklik yapmamız gerekiyor.

1- Öncelikle TitanDB'yi, "/system/plugins" dizini içerisine indirip ismini "Database.php" olarak değiştiriyoruz. Daha sonra bu dosyayı açıyoruz ve sınıf ismini "Database" olarak değiştiriyoruz. Bunu yapmamızın sebebi, class isimlerinin dosya isimleriyle aynı olması gerektiğidir.

2- "/system/core" Dizini içerisinde bulunan "Model.php" dosyasını açıp içeriğini aşağıdaki gibi değiştiriyoruz;

class Model
{
    public $db;

    function __construct()
    {
        if(ENVIRONMENT != 'production')
            require_once APP_DIR . 'config/' . ENVIRONMENT . '/db.php';
        else
            require_once APP_DIR . 'config/db.php';

        require_once SYSTEM_DIR . 'plugins/Database.php';

        $this->db = Database::init($config);
    }
}


3- Son olarak "/app/config" dizininde bulunan ve database bağlantı ayarlarını barındıran "db.php" dosyasını aşağıdaki gibi düzenleyeceğiz;

$config['db_driver']    = 'mysql';
$config['db_host']      = 'localhost';
$config['db_user']      = '';
$config['db_pass']      = '';
$config['db_name']      = '';
$config['db_charset']   = 'utf8';
$config['db_collation'] = 'utf8_general_ci';
$config['db_prefix']    = '';


TitanDB kütüphanesinin, Titan Framework ile entegrasyonu bu şekildedir. Kütüphanenin kullanımı ile ilgili ayrıntılı bilgi için aşağıdaki makalemi inceleyebilirsiniz;

http://www.turankaratug.com/blog/php/27-titandb---pdo-query-builder