# Veritabanı
Eklenti kendi veritabanını yapılandırabilir, örneğin `plugin/foo/config/database.php` içeriği aşağıdaki gibi olabilir
```php
return [
'default' => 'mysql',
'connections' => [
'mysql' => [ // mysql bağlantı adı
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'veritabanı',
'username' => 'kullanıcı adı',
'password' => 'şifre',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
],
'admin' => [ // admin bağlantı adı
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'veritabanı',
'username' => 'kullanıcı adı',
'password' => 'şifre',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
],
],
];
Referans yöntemi Db::connection('plugin.{eklenti}.{bağlantı_adı}');
şeklindedir, örneğin
use support\Db;
Db::connection('plugin.foo.mysql')->table('user')->first();
Db::connection('plugin.foo.admin')->table('admin')->first();
Ana projenin veritabanını kullanmak istiyorsanız, doğrudan kullanabilirsiniz, örneğin
use support\Db;
Db::table('user')->first();
// Varsayalım ana projede admin bağlantısı da yapılandırıldı
Db::connection('admin')->table('admin')->first();
Model için Veritabanı Yapılandırması
Model için bir Base sınıfı oluşturabiliriz, Base sınıfında $connection
ile eklentin kendi veritabanı bağlantısını belirleyebiliriz, örneğin
<?php
namespace plugin\foo\app\model;
use DateTimeInterface;
use support\Model;
class Base extends Model
{
/**
* @var string
*/
protected $connection = 'plugin.foo.mysql';
}
Bu şekilde eklentin içindeki tüm Modeller Base'den miras alarak otomatik olarak eklentinin kendi veritabanını kullanacaktır.
Veritabanı Yapılandırmasını Tekrar Kullanma
Tabii ki ana projenin veritabanı yapılandırmasını tekrar kullanabiliriz, webman-admin ile entegrasyon yapmışsak, webman-admin veritabanı yapılandırmasını da tekrar kullanabiliriz, örneğin
<?php
namespace plugin\foo\app\model;
use DateTimeInterface;
use support\Model;
class Base extends Model
{
/**
* @var string
*/
protected $connection = 'plugin.admin.mysql';
}