Bağlantı Ayarları
"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ı
# 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',