قاعدة البيانات
يمكن للإضافات تكوين قاعدة بياناتها الخاصة ، على سبيل المثال plugin/foo/config/database.php
المحتوى كالتالي
return [
'default' => 'mysql',
'connections' => [
'mysql' => [ // mysql اسم الاتصال
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'قاعدة البيانات',
'username' => 'اسم المستخدم',
'password' => 'كلمة المرور',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
],
'admin' => [ // اسم الاتصال للمشرف
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'قاعدة البيانات',
'username' => 'اسم المستخدم',
'password' => 'كلمة المرور',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
],
],
];
يمكن الاستفادة من طريقة Db::connection('plugin.{الإضافة}.{اسم الاتصال}');
، على سبيل المثال
use support\Db;
Db::connection('plugin.foo.mysql')->table('user')->first();
Db::connection('plugin.foo.admin')->table('admin')->first();
إذا كنت ترغب في استخدام قاعدة البيانات الرئيسية ، يمكنك استخدامها مباشرة ، على سبيل المثال
use support\Db;
Db::table('user')->first();
// يفترض أن البرنامج الرئيسي لا يزال يحتوي على اتصال بالمشرف
Db::connection('admin')->table('admin')->first();
تكوين قاعدة البيانات لنموذج
يمكننا إنشاء فئة قاعدية لنموذج Base ، حيث تستخدم $connection
لتحديد اتصال قاعدة بيانات الإضافة بنفسها، على سبيل المثال
<?php
namespace plugin\foo\app\model;
use DateTimeInterface;
use support\Model;
class Base extends Model
{
/**
* @var string
*/
protected $connection = 'plugin.foo.mysql';
}
بهذه الطريقة ، سيستفيد جميع نماذج الإضافة من نموذج Base وسيتم استخدام قاعدة بيانات الإضافة تلقائيًا.
إعادة استخدام تكوينات قاعدة البيانات
بالطبع ، يمكننا إعادة استخدام تكوينات قاعدة البيانات الرئيسية ، وإذا كنا قد قمنا بربط webman-admin ، يمكننا أيضًا إعادة استخدام تكوينات قاعدة بيانات webman-admin، على سبيل المثال
<?php
namespace plugin\foo\app\model;
use DateTimeInterface;
use support\Model;
class Base extends Model
{
/**
* @var string
*/
protected $connection = 'plugin.admin.mysql';
}