#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
действии.
Таким образом, код будет более удобным в обслуживании, и вы сможете легко масштабировать его до нового уровня.