Ну, как я вижу, ООП пытается сделать вещи более простыми, более доступными и более читаемыми для нас, программистами.
Существуют нестандартные правила для определения классов. Каждый программист может реализовать разные классы для аналогичного проекта. Когда я решаю, какие классы реализовать, я буду задавать себе вопросы :
- Какие функции мне нужно реализовать?
- Есть ли у меня функции, которые поддерживают аналогичный элемент в моем проекте?
Вот пример из моего текущего проекта: я делаю аналитическую систему, представляющую графики для пользователей. Я сделал 2 класса, один называется analytic
, а второй называется analyticQueries
. Первый отвечает за все обновления базы данных аналитики, а второй отвечает за прием данных из базы данных и подготовку их к графическому движку.
Почему я не сделал ни одного класса database
? хорошо, я думал, что это будет слишком тяжело, и, как я вижу, есть два предмета, которые нужно разделить, чтобы лучше понять способ работы программы: один пишет базу данных, а второй читает из нее.
Другим способом мышления классов (а также хороший способ планирования вашей базы данных) задают следующие вопросы:
- Кто использует проект?
- Каковы действия тех, кто его использует?
- Кто использует кого? (Это может помочь вам в создании ассоциаций. В моем проекте оба аналитических класса подключаются к базе данных. Я мог бы сделать третий класс
DBConnection
и включить его в оба класса, но я думал, что он не будет таким большим и это не то, что является достаточно центральным в проекте, который нуждается в его собственном классе).
На вашем сайте пользователи - пользователи, которые входят в систему, поэтому вам обязательно понадобится таблица user
в вашей базе данных. Вам обязательно понадобится стол questions
и, возможно, answers
.
Вы можете решить, хотите ли вы классы на основе вашей базы данных, например, userManager
может быть классом с функцией, ответственной за все действия пользователей (Логин, информация об обновлении и т. Д.) И иметь questionManager
, который будет обрабатывать вопросы представления и проверки ответов.
Отличная книга, хотя она не специфична для PHP, является проектом, управляемым доменами Эриком Эвансом. В этой книге он освещает многие вопросы, которые вы задаете, например, как определить классы домена и отдельные уровни беспокойства. – eli