Я занимаюсь обновлением веб-сайта. Вкратце: он обрабатывает подписки пользователей и отслеживает продажи (продуктов, которые я делаю). Я хочу оставить открытыми возможности для добавления в него новых функций в ближайшем будущем. Он построен с использованием PHP и MySQL.
Я серьезно не обновлял код уже 5 лет и пытаюсь воспользоваться возможностью сделать весь код более простым в управлении и обновлении. В частности, я пытаюсь сделать взаимодействие с базой данных более удобным.
Я поигрался с ezSQL, который позволяет мне очень кратко взаимодействовать с базой данных. , например:
Код: Выделить всё
$users = $db->get_results("SELECT name, email FROM users");
foreach ( $users as $user ) {
// Access data using object syntax
echo $user->name;
echo $user->email;
}
Если это удобно для запросов SELECT, то для операторов INSERT это не очень помогает, и в конечном итоге я могу с кодом, который выглядит следующим образом:
Код: Выделить всё
$db->query( "INSERT INTO users (name, email, date, hostname, cid, code, email_id, email_date, source, ebook, audiobook )
VALUES ( '" . $db->escape( $user->name ) . "',
'" . $db->escape( $user->email ) . "',
'" . $db->escape( $user->date ) . "',
'" . $db->escape( $user->hostname ) . "',
'" . $db->escape( $user->cid ) . "',
'" . $db->escape( $user->code ) . "',
'" . $db->escape( $user->email_id ) . "',
'" . $db->escape( $user->email_date ) . "',
'" . $db->escape( $user->source ) . "',
'" . $db->escape( $user->ebook ) . "',
'" . $db->escape( $user->audiobook ) . "')"
);
Итак, учитывая следующую структуру таблицы и объект PHP:
Код: Выделить всё
$user = new User();
$user->name = 'something';
$user->email = 'something@example.com';
/// etc.
class User {
var $name;
var $email;
// etc.
}
Код: Выделить всё
$user->insert();
У меня вопрос: есть ли такая библиотека? Если нет, то почему это плохая идея.
Я читал о MVC, но считаю, что для этого проекта это излишне. Это добавило бы дополнительную сложность вместо простоты. Например, мне не нужны леса или что-то, что генерирует код по умолчанию. Кроме того, я не хочу запутаться в структуре, которая слишком сложна для такого простого проекта.
Поэтому мне было интересно узнать об уровнях абстракции базы данных для PHP. (например: ADOdb, PDO), но мне пока неясно, предназначены ли они в основном для того, чтобы сделать написание кода короче (мое предполагаемое использование) или облегчить написание кода для различных баз данных. Я не против того, чтобы мой код работал только с MySQL. Я просто хочу абстрагировать это для ясности, а не совместимости.
Вместо того, чтобы тестировать каждый DAL для PHP, мог бы кто-нибудь предоставить отзыв, основанный на опыте и простое использование по назначению, описанное выше?
Спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/137 ... -and-mysql
Мобильная версия