Bağlantı Ayarları


    × Bunları biliyor muydunuz?
"Başlangıç kontrolcüsü üzerinden $this nesnesini data olarak göndererek statik olmayan sınıflara ilgili data üzerinden erişebilirsiniz."


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

# Config Kütüphanesi ile Yapılandırma 

# Çoklu Bağlantı

# Ayar Kümesinin Kullanımı
# Parametrik Yapılandırma
# Akışı Değiştirme

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

# MySQLi
# 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
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
string $host = 'localhost' Veritabanı platformunun host adını belirlemek için kullanılır. Hepsi
string $database = 'test' 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
int $port = '' Port bağlantısı gerektiren sürücüler için geçerli bir ayardır. postgres
sqlserver
mysqli
string $dsn = '' Belirtilen sürücülerde DSN tanımlaması ile bağlantı kurmak için kullanılır. oracle
odbc
postgres
string $server = '' Server bağlantısı gerektiren sürücüler için geçerli bir ayardır. odbc
sqlserver
array $ssl = [] MySQL için ssl bağlantı ayarıdır. mysqli
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. mysqli
postgres
sqlserver
string $collation = 'utf8_general_ci'
Veritabanı karakter kodlama türünü ayarlamak için kullanılır. mysqli
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
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'   => 'mysqli',
    '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.

 

 

# Ç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::new('mysqlConnect');
$postgresPanelConnect = DB::new('postgresPanelConnect');
$postgresSiteConnect  = DB::new('postgresSiteConnect'); 
$panelGet = $postgresPanelConnect->get('accounts');

gibi kullanabilirsiniz.

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' => 'sqlserver'
]);
Akışı Değiştirme

Veritabanı bağlantısını kod akışı sırasında değiştirmek için kullanılır. DB::new() yönteminden farklı olarak mevcut bağlantıyı değiştir. Yani bu tanımlamadan sonra kullanılan DB:: yöntemleri artık bu bağlantıya göre hareket eder.

DB::restruct
([
    'database' => 'newDatabase', 'driver' => 'sqlserver'
]);

 

 

# 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  
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', 
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',
'charset'   => 'UNICODE',
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'   => 'postgres',
'dsn'      => 'host=localhost port=5432 dbname=mydb user=foo password=bar',
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'   => false,
'charset'  => 'utf-8',             
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',