я написал это очень, это своего рода полированный эшафот. Это в основном класс, конструктор которого принимает таблицу, которая будет использоваться, массив, содержащий имена и типы полей, и действие. На основе этого действия объект вызывает метод сам по себе. Например:
Это массив я прохожу:
$data = array(array('name' => 'id', 'type' => 'hidden')
, array('name' => 'student', 'type' => 'text', 'title' => 'Student'));
Тогда я называю конструктор:
new MyScaffold($table, 'edit', $data, $_GET['id']);
В приведенном выше случае конструктор вызывает метод «изменить», который представляет собой форму отображение данных из таблицы $, но только поля, которые я установил в своем массиве. Используемая запись определяется методом $ _GET. В этом примере поле «ученик» представлено как текстовое поле (отсюда и тип «текст»). «Title» - это просто используемый ярлык. Будучи «скрытым», поле ID не отображается для редактирования, но доступно для использования программой.
Если я передал 'delete' вместо 'edit', он удалит запись из переменной GET. Если бы я передал только имя таблицы, то по умолчанию был бы список записей с кнопками для редактирования, удаления и нового.
Это всего лишь один класс, который содержит все CRUD с большой настраиваемостью. Вы можете сделать это сложным или простым, как вы пожелаете. Сделав его универсальным классом, я могу отбросить его в любой проект и просто передать инструкции, информацию о таблице и информацию о конфигурации. Я мог бы за одну таблицу не захотеть, чтобы новые записи могли быть добавлены через эшафот, в этом случае я мог бы установить «newbutton» в false в моем массиве параметров.
Это не каркас в обычном смысле. Просто автономный класс, который обрабатывает все внутренне. Есть некоторые недостатки. Ключевыми должны быть то, что все мои таблицы должны иметь первичный ключ с именем «id», вы можете уйти без этого, но это усложнит ситуацию. Другое существо должно быть подготовлено для большого массива, детализирующего информацию о каждой управляемой таблице, но вам нужно сделать это только один раз.
Для учебника по этой идее см here
Firefox не нравится ваш сайт. – 2009-08-26 17:37:18