mysql — автоматизировать генерацию PHP-кода для класса-обертки базы данных?

В настоящее время я пытаюсь создать пару классов-оболочек для базы данных MySQL. По сути, моя цель состоит в том, чтобы избавиться от необходимости писать какой-либо SQL-код и хранить все это на PHP. Я знаю, что в масштабе это не может быть хорошим решением, но это хорошо для простых установок, таких как тот, над которым я сейчас работаю =)

Я хочу иметь возможность подключить этот код к любой таблице MySQL и автоматически генерировать функции, которые обрабатывают команды CRUD. Например, у меня есть около 20 столбцов в таблице «Пользователи», и мне нужно 4 функции для каждого столбца: «Создать», «Читать», «Обновить» и «Удалить». На самом деле они мне не понадобятся ВСЕ, но предполагается, что это просто слой, из которого я потом создаю свои настоящие PHP-приложения.

Я пытаюсь автоматизировать эти классы, которые я делаю, потому что они чрезвычайно повторяющиеся и автоматизировать генерацию должно быть очень просто.

Чтобы проиллюстрировать, где «имя» — это столбец в таблице «Пользователи»:

function createName($name) {

if($stmt = $this->db->prepare('INSERT INTO ' . $this->table .
'(name) values ("' . $name . '")')) {
$stmt -> execute();
$stmt -> fetch();
$stmt -> close();
}
else {
echo "error: " . mysqli_error($this->db);
}
}

Это может быть обобщено на:

function create{columnTitle}({$desiredValue}) {

if($stmt = $this->db->prepare('INSERT INTO ' .
$this->table . '({columnTitle}) values ("' . {$desiredValue} . '")')) {
$stmt -> execute();
$stmt -> fetch();
$stmt -> close();
}
else {
echo "error: " . mysqli_error($this->db);
}
}

Где {columnTitle} — это имя столбца, о котором идет речь, а {requiredValue} — это значение столбца для этой записи.

Таким образом, буквально каждая функция CREATE будет в точности одинаковой, за исключением того, что имя функции и имя параметра будут равны имени рассматриваемого столбца таблицы. Мне кажется, что я должен иметь возможность получить все столбцы в базе данных и автоматически изменять имена переменных и функций вместо создания 80 стандартных функций (по 4 для каждого столбца), а затем выполнять поиск / замену миллион раз.

Есть идеи?

Я бы хотел, чтобы это работало с любыми таблицами базы данных, чтобы я мог поместить его на github, чтобы каждый мог его использовать. Так что в основном поток будет идти:

  • захватить все таблицы в базе данных
  • для каждой таблицы:
    • захватить все столбцы в таблице
      • генерировать функции CREATE для всех столбцов
      • генерировать функции READ для всех столбцов
      • генерировать функции UPDATE для всех столбцов
      • генерировать DELETE функции для всех столбцов

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector