Я создаю PHP Webapplication, который использует 8 классов (еще не все). Я понял, что все эти классы имеют почти одинаковые функции для доступа к базе данных: get_single, get_list, вставка, обновление и удаление.
К какой таблице базы данных обращаются и какие поля выбраны, конечно, для каждого класса.
Например:
function get_single($conn) {
$sql = $conn->prepare('SELECT id_person, join_date, img_profile, img_header, firstname, familyname, nationality, mail, password, birthday FROM person WHERE id_person = ?');
$sql->bind_param('i', $this->id);$sql->execute();
$sql->bind_result($this->id, $this->join_date, $this->profile_img, $this->header_img, $this->firstname, $this->familyname, $this->nationality, $this->mail, $this->password, $this->birthday);
$sql->fetch();
return $this;
}
Я спросил себя, могу ли я написать или написать одну функцию для всех классов, примерно так:
function get_single($id, $conn, $query) {
$sql = $conn->prepare($query);
$sql->bind_param('i', $id);$sql->execute();
$sql->bind_result(/* ??? */);
$sql->fetch();
return /* ??? */ ;
}
… а затем позвоните
$foo = new Foo(array('id' => $bar));
$foo = get_single($foo->id, $conn, $qry_single_foo);
Таким образом, я мог
Или я должен иметь родительский класс, от которого наследуются эти классы?
Или использовать шаблон дизайна? Может быть, декоратор? (Извините мои знания там совершенно отсутствуют)
Теперь, когда я понял, что это может быть проще сделать это по-другому, я немного ошеломлен возможностями.
Идеи?
Спасибо
Вы можете использовать веб-фреймворк MVC или библиотеку ORM.
Пожалуйста, проверьте некоторые библиотеки ORM, которые вы можете интегрировать с вашим приложением.
ORM
Других решений пока нет …