Bağlantı Ayarları
"Libraries/ dizini içine taşınan veya bu dizinde oluşturulan kütüphaneler hiç bir tanımlama gerektirmeden kullanılabilir. "
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ı
# Config Kütüphanesi ile Yapılandırma
# Ayar Kümesinin Kullanımı
# Parametrik Yapılandırma
# Akışı Değiştirme
# Yapılandırma
Aşağıda yapılandırma dosyasının içeriğine yer verilmiştir.
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'
]
]
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.
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'
]);
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 |
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',
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',
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',
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',
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',
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',