Slim 3框架:mysql实例的好习惯

时间:2015-07-15 22:54:40

标签: php mysql dependency-injection slim

我试图找出在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');

它运作良好,但我无法确定这是良好做法,资源,记忆方面的好方法......

任何帮助/建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是一种很好的方式,因为它遵循良好的依赖注入实践。

就内存使用而言,您还要确保数据库仅在需要时进行实例化,而不是在每个请求也是如此。

请注意,创建数据库的类不应该被称为DatabaseAction,因为它不是一个动作,它是一个数据库实例创建者。我会称之为App\Database