【问题标题】:Best practice class variables最佳实践类变量
【发布时间】:2016-10-14 10:35:55
【问题描述】:

我创建了一个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 方法),实际上在第二种方式中我直接传递值。

【问题讨论】:

  • 为什么您的对象会立即具有状态(存储的名称、年龄等),并且也接受这些相同的值作为@987654326 的参数@函数?

标签: php mysql class variables


【解决方案1】:

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

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

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

DAO 类中,至少Insert 和Update 方法将接受Person 的对象,您可以使用它的getter 方法来访问特定方法的值。同样的方式在SELECT 操作中只返回Person 的对象或Person 的对象集合。

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

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 2021-11-26
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    相关资源
    最近更新 更多