Как организовать работу с БД в php с использованием ООП подхода? Здравствуйте. Суть вопроса вот в чем: у меня есть Сотрудники с полями имя,дата рождения, отдел, должность, количество отработанных часов, ставка, зарплата. class Employeer{
public $name;
public $birthday;
public $dep;
public $pos;
public $count_hour;
public $cost_hour;
public $salary;
}
И сотрудники хранятся в БД.
Как правильно организовать работу с БД? Я пока новичок и не совсем понимаю, какое верное решение.
Описывать прямо в классе Employeer методы для работы с БД? Например add(), getAll(), delete() ?
Или нужно создавать отдельный класс для этого и в классе сотрудника потом создавать экземпляр этого класса и ему передавать данные?
И еще, у меня есть два разных типа сотрудника, отличающиеся способом оплаты . Создается два отдельных класса, каждый работает с БД.
Подскажите, пожалуйста, как разумно все сделать ? Заранее огромное спасибо!

21 Авг 2019 в 07:03
173 +1
0
Ответы
1

Для организации работы с БД в PHP с использованием ООП подхода, можно реализовать следующую структуру:

Создайте отдельный класс для работы с БД, например, DBManager, который будет содержать методы для соединения с БД, выполнения запросов и получения/обработки данных.

В классе Employeer опишите только поля и методы связанные с сотрудником, например, методы для получения/установки данных о сотруднике.

Создайте два отдельных класса для двух разных типов сотрудников, например, HourlyEmployee и SalariedEmployee, которые будут наследоваться от класса Employeer и содержать свои особенности оплаты.

В каждом из классов для типов сотрудников реализуйте методы add(), getAll(), delete(), которые будут использовать методы DBManager для выполнения запросов к БД.

Примерная структура классов:

class DBManager {
// Методы для работы с БД
}
class Employeer{
public $name;
public $birthday;
public $dep;
public $pos;
protected $dbManager;
public function __construct(DBManager $dbManager){
$this->dbManager = $dbManager;
}
// Методы для работы с данными о сотруднике
}
class HourlyEmployee extends Employeer {
public $count_hour;
public $cost_hour;
public function add(){
// Добавление данных в БД
}
// Дополнительные методы для работников по часам
}
class SalariedEmployee extends Employeer {
public $salary;
public function add(){
// Добавление данных в БД
}
// Дополнительные методы для работников с фиксированной зарплатой
}

Таким образом, вы разделяете ответственность между классами (Employeer, HourlyEmployee, SalariedEmployee) и классом для работы с БД (DBManager), что делает вашу структуру более гибкой и упрощает поддержку и расширение функционала. Кроме того, для работы с данными о сотрудниках, вы используете уже готовые функции DBManager, что повышает повторное использование кода.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир