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