Скаффолдинг (Scaffolding) – это одно из средств, которое используют для добавления, удаления и изменения данных в вашей СУБД (в данном случае это MySQL). Для этих целей можно использовать и phpMyAdmin или, например, MySQL Query Browser. Но дело в том, что Scaffolding не перегружен ничем лишним и используется только для того чтобы изменять, добавлять и удалять записи в базе данных и не для чего больше. Чтобы продемонстрировать его в действии нам потребуется соединение с MySQL, которое мы настраивали в конце статьи, под названием Устанавливаем CodeIgniter и хотя бы один контроллер, который присутствует в дистрибутиве по умолчанию. Напомню что файл с контроллером по умолчанию называется welcome. php и находится в директории system\application\controllers. Создадим базу данных и таблицу в MySQL для нашего примера (для работы с sql server нужно учитывать свои тонкости).
Чтобы не останавливаться на этой мелочи предлагаю создать файл createDataBase. php в корневой директории (DocumentRoot) и вставить туда следующий код: Хочу сразу заметить, что для создания базы данных в большинстве случаев требуются права root, поэтому я и передал в качестве второго параметра функции mysql_connect() значение root. Для исполнения скрипта обращаемся в браузере по адресу http://localhost/createDataBase. php. Теперь у нас имеется база данных test_db и таблица test_table в ней с 4 полями (id, first_name, last_name, age). Теперь наконец то включим в работу скаффолдинг, для этого открываем файл system/application/config/routes. php, ищем в конце файла строку
$route['scaffolding_trigger'] = "";
и изменяем значение переменной $route['scaffolding_trigger'] например на scaffolding. Хочу сразу отметить, что значение переменной $route['scaffolding_trigger'] не должно начинаться с подчеркивания. Изменяем контроллер system\application\controllers\welcome. php, дописывая в его конструктор строку [soucecode language="php"]$this->load->scaffolding(’test_table’);[/sourcecode]. Таким образом мы говорим CodeIgniter’у, что необходимо подгрузить скаффолдинг при обращении к адресу http://localhost/CodeIgniter_1.7.1/index. php/welcome/scaffolding.
Для тех кто запамятовал, что такое конструктор класса, напомню, что в php это функция класса, имеющая такое же название как и сам класс или же функция класса описывающаяся, как function __construct(). Но если вы сейчас попробуете обратиться по данному адресу, то увидите сообщение об ошибке, почему? Дело в том, что мы не указали в файле system\application\config\database. php с какой базой данных придется работать CodeIgniter’у, при инициализации MySQL соединения. Поэтому смело открываем данный файл и изменяем значение переменной $db['default']['database'] на test_db.
$db['default']['database']="test_db";
Всё готово, идем по адресу http://localhost/CodeIgniter_1.7.1/index. php/welcome/scaffolding и видим web-приложение в котором можно очень просто и без всяких лишних функций создавать записи в базе данных. Для наглядности, на картинке внизу показана страничка добавления записи в нашу test_table Скаффолдинг обычно используется обычно только в ходе разработки, но в принципе никто не ограничивает его использование в уже существующих web-приложениях. Только нужно помнить, что скаффолдинг требует наличия PRIMARY_KEY в таблице с которой вы хотите работать с его помощью.