Veritabanı Ayarlarını Yapılandırma


    × Bunları biliyor muydunuz?
"ZN Framework'te Masterpage kütüphanesi ile çok basit bir şekilde web iskeleti oluşturabilirsiniz."


Veritabanı yöntemlerini kullanmadan önce bir takım ayarlar yapmanız gerekmektedir. Bu bölümde, ne gibi ayarlar yapacağınız konusunda bilgi verdik. Aşağıda ZN Framework'ün desteklediği Veritabanı Platformları belirtilmiştir.

 

 

# Bölüm Başlıkları


# Yapılandırma
# Çoklu Bağlantı

# Ayar Kümesinin Kullanımı
# Parametrik Yapılandırma
# Config Kütüphanesi ile Yapılandırma

# Sürücüye Göre Örnek Bağlantı Yapılandırmaları

# MySQLi
# PDO MySQL
# Postgres
# SQLite
# SQLServer
# ODBC
# Oracle

 

 

# Yapılandırma


Aşağıda yapılandırma dosyasının içeriğine yer verilmiştir.

Dosya: Config/Database.php
Veri Türü Anahtar Açıklama Kullanan Sürücüler
String $driver = 'mysqli' Kullanılacak database platformonu seçmek için kullanılır. Hepsi
Seçenekler mysqli, postgres, sqlserver, oracle, odbc, pdo
String $host = 'localhost' Veritabanı platformunun host adını belirlemek için kullanılır. Hepsi
String $database Bağlantının sağlanacağı veritabanı adını belirlemek için kullanılır. Hepsi
String $user = 'root' Bağlantı sağlanacak veritabanının varsa kullanıcı adını belirtmek için kullanılır. Hepsi
String $password Bağlantı sağlanacak veritabanının varsa şifre bilgisini belirtmek için kullanılır. Hepsi
String $dsn Genellikle PDO alt sürücüleri için bağlantılar oluşturmak için kullanılan bağlantı kümesi ayarıdır. PDO alt sürücüleri için diğer ayarları kullanmadan da sadece bu ayar sayesinde bağlantı sağlamanıza olanak tanır. Yani diğer bağlantı ayarlarının yaptığı işlemi tek başına üstlenebilir. oracle
odbc
postgres
pdo
String $server Server bağlantısı gerektiren sürücüler için geçerli bir ayardır. odbc
sqlserver
Int $port Port bağlantısı gerektiren sürücüler için geçerli bir ayardır. postgres
sqlserver
pdo
String $cacheDriver = 'file' Select sorgularının ön belleklenecekse hangi sürücü ile yapılacağı. Hepsi
Bool $queryLog = false Sorguların log kayıtları altına alınıp alınmayacağıdır. Hepsi
Bool $pconnect = false Kalıcı bağlantı açılıp açılmayacağıdır. postgres
sqlserver
oracle
odbc
Bool $encode = false Encode ayarı gerektiren sürücüler içindir. sqlserver
String $prefix Tablo ön eki olan veritabanlarında tablo kullanımları için sürekli ön ek yazmamak için bu ayarı kullanabilirsiniz. Hepsi
String $charset = 'utf8' Veritabanı karakter setini ayarlamak için kullanılır. Hepsi
String $collation = 'utf8_general_ci' Veritabanı karakter kodlama türünü ayarlamak için kullanılır. mysqli
pdo
Array $differentConnection = [] Aynı anda birden fazla platform ve veritabanı ile çalışılması gereken durumlarda kullanılan ayardır. Bu ayara birden fazla ayar kümesi oluşturmak suretiyle istediğiniz sayıda farklı veritabanı bağlantısı oluşturabilirsiniz. Burada tanımlanan ayar kümelerini kullanabilmek için Database kütüphanesinin DB::differentConnection() yönteminden yararlanılır. Hepsi

 

 

# Çoklu Bağlantı


Birden fazla sabit bağlantı kullanacaksanız bu ayarların yapılandırma dosyasında yer alan differentConnection ayarına aşağıdaki gibi bağlantı grupları ekleyebilirsiniz.

'differentConnection' =>
[
    'mysqlConnect'         => 
    [
        'database' => 'test1'
    ],
    'postgresPanelConnect' => 
    [
        'driver'   => 'Postgres', 
        'database' => 'panel', 
        'password' => '1234'
    ],
    'postgresSiteConnect'  => 
    [
        'driver'   => 'Postgres', 
        'database' => 'site' , 
        'password' => '4321'
    ]
]
Ayar Kümesinin Kullanımı

Yukarıda görüldüğü gibi farklı isimlerle ayar kümeleri oluşturulmuştur. Bu ayar kümelerinden bağlantı alabilmek için;

$mysqlConnect         = DB::differentConnection('mysqlConnect');
$postgresPanelConnect = DB::differentConnection('postgresPanelConnect');
$postgresSiteConnect  = DB::differentConnection('postgresSiteConnect'); 
$panelGet = $postgresPanelConnect->get('accounts');

gibi kullanabilirsiniz.

5.8.6.3 Güncellemesi

DB::differentConnection() yerine DB::new() yöntemi de kullanılabilir.

Parametrik Yapılandırma

Eğer ayar kümesi kullanmadan farklı ayarlar yapmak isterseniz yöntemin 1. parametresini dizi türünde kullanabilirsiniz.

$different = DB::new
([
    'database' => 'newDatabase', 'driver' => 'pdo:mysql'
]);
Config Kütüphanesi ile Yapılandırma

Veritabanı ayarlarını başlangıç dosyalarında, başlangıç kontrolcülerinde veya veritabanı komutlarından hemen önce Config sınıfını kullanarak yeniden yapılandırabilirsiniz.

Config::set('Database', 'database',
[
    'driver'   => 'pdo:mysql',
    'database' => 'my_database',
    'user'     => 'my_user',
    'password' => 'my_password'
]);

$result = DB::get('my_table')->result();

Bu kullanım bayilik ve benzeri projelerde oldukça kullanışlıdır.

 

 

# Sürücüye Göre Örnek Bağlantı Yapılandırmaları


Aşağıda sürücüye göre gerekli olan bağlantı kullanımları gösterilmiştir.

Sürücü
DSN ile Bağlantı
MySQLi  
PDO MySQL DSN
Postgres  
SQLite  
SQLServer  
ODBC DSN
Oracle DSN
MySQLi Bağlantısı

Standart bir mysql bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'    => 'mysqli',           
'host'      => 'localhost',       
'database'  => 'test',      
'user'      => 'root', 
'password'  => '1234', 
PDO MySQL Bağlantısı

MySQL bağlantısı olması nedeni ile yapılandırma biçimi MySQLi sürücüsü gibidir.

'driver'    => 'pdo',              
'host'      => 'localhost',           
'database'  => 'test',  
'user'      => 'root',     
'password'  => '1234',
DSN ile Bağlantı

Yukarıdaki bağlantı biçiminin yanı sıra istenirse aşağıdaki yapılandırma biçimi ile de bağlantı sağlanır.

'driver'   => 'pdo',
'dsn'      => 'mysql:host=localhost;port=3307;dbname=test',
'user'     => 'root', 
'password' => '1234'
Postgres Bağlantısı

Standart bir postgres bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'    => 'postgres',            
'host'      => 'localhost',            
'database'  => 'test',  
'user'      => 'root',   
'password'  => '1234', 
'port'      => '5432',
SQLite Bağlantısı

Standart bir sqlite bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'    => 'sqlite',         
'database'  => 'test',  
'password'  => '1234', 
SQLServer Bağlantısı

Standart bir sqlserver bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'   => 'sqlserver',           
'host'     => 'serverName\\sqlexpress',
'database' => 'test',   
'user'     => 'root',   
'password' => '1234',  
'port'     => '1452',                  
'encode'   => true,                  
ODBC Bağlantısı

Standart bir odbc bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'    => 'odbc',                 
'host'      => 'SQL Server Native Client 10.0',          
'server'    => 'swname',          
'database'  => 'test',         
'user'      => 'root',     
'password'  => '1234', 
DSN ile Bağlantı

Yukarıdaki bağlantı biçiminin yanı sıra istenirse aşağıdaki yapılandırma biçimi ile de bağlantı sağlanır.

'driver'   => 'odbc',
'dsn'      => 'Driver={SQL Server Native Client 10.0};Server=swname;Database=test;',
'user'     => 'root', 
'password' => '1234', 
Oracle Bağlantısı

Standart bir oracle bağlantısı için yapılandırmanız aşağıdakine benzer olmalıdır.

'driver'    => 'oracle',              
'host'      => 'localhost/XE',       
'user'      => 'root',    
'password'  => '1234', 
DSN ile Bağlantı

Yukarıdaki bağlantı biçiminin yanı sıra istenirse aşağıdaki yapılandırma biçimi ile de bağlantı sağlanır.

'driver'    => 'oracle',              
'dsn'       => '(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.34)(PORT = 1521)))(CONNECT_DATA=(SID=orcl)))',       
'user'      => 'root',    
'password'  => '1234',