我试图找出在Slim Framework 3中通过依赖注入使用mysql连接实例的最佳实践。
我使用Rob Allen的骨架并在app / dependencies.php中添加了这些行
$container['db'] = function ($c) {
$settings = $c['settings']['LOCAL_DB'];
return new \App\Action\DatabaseAction($settings['DB_HOST'],$settings['DB_DATABASE'],$settings['DB_USERNAME'],$settings['DB_PASSWORD']);
};
$container['App\Action\HelloAction'] = function ($c) {
return new App\Action\HelloAction($c['view'], $c['db']);
};
然后在类中使用它:
$data['test'] = $this->db->one('SELECT * FROM database');
它运作良好,但我无法确定这是良好做法,资源,记忆方面的好方法......
任何帮助/建议都将不胜感激。
答案 0 :(得分:0)
这是一种很好的方式,因为它遵循良好的依赖注入实践。
就内存使用而言,您还要确保数据库仅在需要时进行实例化,而不是在每个请求也是如此。
请注意,创建数据库的类不应该被称为DatabaseAction
,因为它不是一个动作,它是一个数据库实例创建者。我会称之为App\Database