Переменные класса наилучшей практики

#php #mysql #class #variables

#php #mysql #класс #переменные

Вопрос:

Я создал 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
  ..
}
 

?

Я спрашиваю об этом, потому что в первом случае мне нужно не забывать присваивать значение каждой переменной (с каждым методом установки), действительно, во втором случае я передаю значение напрямую.

Комментарии:

1. Почему ваш объект должен сразу иметь состояние (сохраненное имя, возраст и т.д.), А также принимать те же значения в качестве параметров insert функции?

Ответ №1:

Хотя это в первую очередь вопрос, основанный на мнении, вы можете спроектировать свое приложение следующим образом.

Прежде всего, модель предназначена только для хранения данных объекта / сущности, она должна иметь только методы получения и установки. В вашем случае Person — это класс сущностей, который содержит некоторые свойства и метод getter setter для каждого из них.

Теперь создайте еще один класс для выполнения операций с базой данных Person entity. Этот класс будет содержать операции CRUD. (Вставить, выбрать, обновить, Удалить) Мы называем этот класс DAO (объект доступа к данным). Узнайте больше о DAO.

В классе DAO, по крайней мере, метод Insert и Update будет принимать объект Person, и вы используете его метод getter для доступа к значению метода perticular. Таким же образом возвращает только объект Person или коллекцию объектов Person в SELECT действии.

Таким образом, код будет более удобным в обслуживании, и вы сможете легко масштабировать его до нового уровня.