【发布时间】:2013-11-24 12:29:07
【问题描述】:
我正在重构大量代码以使其更具可测试性,并且我有许多依赖于实例化数据库对象的有用函数。
这样的事情:
function id_from_name($table, $name)
{
$db = get_database();
//code that returns an id
}
function username_from_user_id($id)
{
$db = get_database();
//code that returns a username
}
还有很多类似 id_exists、id_active 等。
现在我认为这不是正确的做法,因为对象可能应该作为参数传递?但这意味着每次我想使用一个新对象并将其发送到每个函数中。
真的,我的问题是:我是否应该将这些函数移动到它们自己的可以访问数据库对象的类/库中?我上面展示的示例通常是一种不好的做事方式吗?
【问题讨论】:
-
将函数移动到一个类中,并为该类注入它需要的任何依赖项。 en.wikipedia.org/wiki/Dependency_injection