最佳实践类变量

时间:2016-10-14 10:35:55

标签: php mysql class variables

我创建了一个Person PHP类,并将其与MySQL连接以执行查询。

在课程中我使用私人属性,如$name$age等,以及任何方法CRUD(INSERT,UPDATE ..)和GETTER和SETTER。

当我写这些方法时最好像参数一样传递它

private function insert($name, $age){
  // bindParam uses $name, $age, etc
}

或喜欢该类的私人礼仪

private function insert(){
  // bindParam uses $this->name, $this->age, etc
  ..
}

我问这是因为在第一种方式中我需要记住为每个变量赋值(使用每个setter方法),实际上在第二种方式中我直接传递值。

1 个答案:

答案 0 :(得分:1)

虽然这主要是基于意见的问题,但您可以按照以下方式构建应用程序。

首先,模型只是存储一个对象/实体的数据,它应该只有getter和setter方法。在你的情况下, Person 是一个实体类,它为每个实体提供一些属性和getter setter方法。

现在创建另一个类来执行 Person 实体的数据库操作。此类将包含 CRUD 操作。 (插入,选择,更新,删除)我们将此类称为DAO(数据访问对象)。 Learn more about DAO

DAO 类中,至少Insert和Update方法将接受 Person 的对象,并使用它的getter方法来访问perticular方法的值。同样在SELECT操作中仅返回 Person 的对象或Person对象的集合。

这样代码将更易于维护,您可以轻松地将其扩展到新的水平。