Slim 3 框架:mysql 实例良好实践

Slim 3 framework: mysql instance good practice

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

然后像这样在 class 中使用它:

$data['test'] = $this->db->one('SELECT * FROM database');

它运行良好,但我不能确定这是在良好实践、已用资源、内存方面的好方法...

如有任何帮助/建议,我们将不胜感激。

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

在内存使用方面,您还要确保仅在需要时实例化数据库,而不是在每次请求时实例化,这也很好。

请注意,创建数据库的 class 不应称为 DatabaseAction,因为它不是操作,而是数据库实例创建者。我会称之为 App\Database