1 回答

TA貢獻1887條經驗 獲得超5個贊
經過一番深思熟慮,我想我已經解決了。
我使用容器創建了 PDO 實例
$container = $app->getContainer();
$container->set('db', function(ContainerInterface $c) {
$config = $c->get(Configuration::class);
$host = $config->getString('db.host');
$dbname = $config->getString('db.database');
$username = $config->getString('db.username');
$password = $config->getString('db.password');
$dsn = "mysql:host=$host;dbname=$dbname;";
return new PDO($dsn, $username, $password);
});
$container->set('db_readonly', function(ContainerInterface $c) {
$config = $c->get(Configuration::class);
$host = $config->getString('db_readonly.host');
$dbname = $config->getString('db_readonly.database');
$username = $config->getString('db_readonly.username');
$password = $config->getString('db_readonly.password');
$dsn = "mysql:host=$host;dbname=$dbname;";
return new PDO($dsn, $username, $password);
});
然后將存儲庫更改為使用構造函數中的 App,然后使用容器獲取 PDO 實例
/**
* @var PDO The database
*/
private $db;
/**
* @var PDO The readonly database
*/
private $readonly_db;
/**
* Constructor.
*
* @param App $app The database db
*/
public function __construct(App $app)
{
$container = $app->getContainer();
$this->db = $container->get('db');
$this->readonly_db = $container->get('db_readonly');
}
將此留在這里,以防其他人遇到問題,盡管有更好的方法可以做到這一點,或者我目前的方法可以改進,我將不勝感激的反饋
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報