我刚开始使用PHP的OOPS作为我的项目。并希望确保我为项目学习正确的OOP方法。
我的班级看起来像这样:
class user
{
//class variables
public function __construct
{
//initializes all class variables to null
}
public function setById($id)
{
//Queries Database for row matching $id and sets the class variables with
the same values as returned in result
}
public function setValues($array)
{
foreach($array as $key => $value)
{
$this->$key = $value;
}
}
public function update()
{
//updates the database table from the class variables
}
public function delete()
{
//deletes the row matching the class variable called id
}
}
现在进行更新操作:
1)我将首先声明该对象。 2)然后调用SetById()函数,并将参数作为我想要更新的行的id。这将设置数据库中的所有当前值。 3)然后将调用setValues()函数来更新类变量中的值。 4)然后将调用update函数从类变量的值更新数据库行。
这是以OOP方法更新的正确方法吗?
对于删除操作:
1)我将首先声明该对象。 2)然后调用SetById()函数,并将参数作为我想要更新的行的id。这将设置数据库中的所有当前值。 3)然后调用delete函数删除类变量中的行匹配id。
这是正确的方法吗?
答案 0 :(得分:2)
这取决于。您是否计划与该用户一起做任何事情? (除了显示它)?
如果不这样做,请转到 Table Data Gateway 模式。如果您确实涉及用户的某种逻辑,请转到 Data Mapper 模式。
主要区别在于使用表数据网关,重点是表(每个表一个网关对象,允许您对该表执行操作)。但是,使用Data Mapper时,重点是域对象(即User
对象),每个域类通常有一个映射器类。 (即User
和UserMapper
)。