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