您通常应该将连接传递给您的用户,以便您的用户类将数据库类型对象带入其构造函数,然后使用该数据库对象对数据库执行查询。这样您的数据访问逻辑就与业务逻辑保持分离。这就是所谓的组合,而不是你所说的继承。
如果您确实想掌握技术,那么最好有一个除了公共变量之外什么都没有的用户对象,然后您将使用“服务”来实现您的业务逻辑。
class UserService implements IUserService
{
private $_db;
function __construct(IDb $db) {
$this->_db = db;
}
function GetAllUsers() {
$users = Array();
$result = $this->_db->Query("select * from user")
foreach($result as $user) {
//Would resolve this into your user domain object here
users[] = $user;
}
return users;
}
}
Run Code Online (Sandbox Code Playgroud)