Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach_ver_1_00.docx
Скачиваний:
186
Добавлен:
13.04.2015
Размер:
1.57 Mб
Скачать

Раздел 2. Фреймворк CodeIgniter. Настройка и совмещение с веб-сервером Denwer

В корневой папке установленного веб-сервера Denwerесть подпапка с названиемhome. В ней создается папка с именем, совпадающим с адресом сайта (в данном случае test.nn). Затем в ней необходимо создать папкуwww”,куда и будет сохранен распакованный архив с фреймворкомCodeIgniter. В результате получился такой список каталогов (Рис.6)

Рис.6. Список каталогов.

В папке system/application находятся все созданные контроллеры (application/controllers), модели (application/models), представления (application/views).

Для правильной организации работы с CodeIgniter, были произведены некоторые изменения.

В файле application/config/database.phpнеобходимо указать имя базы данных веб-сайта, а также имя пользователя и пароль для доступа к ней.

В файле autoload. php поменять строку $autoload ['libraries'] = array (‘database’);. Cпомощью этой строки происходит автоматическое подключение библиотекиdatabase, входящей в составCodeIgniter. Она ответственна за работу БД. Эта библиотека будет находиться в автозагрузке, поэтому при обращении каждый раз к сайту, будет автоматически устанавливаться связь с базой данных.

В этом же файле нужно изменить строку $autoload ['helper'] = array ('url');. Этот хелпер содержит функции, позволяющие упростить работу сURL.

В файле config.phpуказываем url-адрес сайта в строке$config['base_url']. Пример: $config['base_url'] = 'http://test.nn/';

В файле routes.phpнеобходимо указать контроллер, вызываемый по умолчанию. Для этого нужно изменить значение элемента массива $route с индексом default_controller (по умолчанию равен 'welcome') на необходимый. Пример: $route['default_controller'] = 'home'; Контроллер "home" будет вызываться при переходе по адресуhttp://test.nn/index.php.

В этом же файле указываются все требуемые перенаправления. Например: $route['themes/(:num)'] = "themes/index/$1"; Данная строка означает, что при переходе по адресу видаthemes/"число" из контроллераthemesбудет производиться вызов методаindex, которому будет передан аргумент "число".

Раздел 4. Модели

Модели — это классы PHP, которые построены для работы с информацией в базе данных.

Для данного сайта были созданы 3 модели: Tests_model,Users_modelиAdmin_model.

Tests_model содержит функции извлечения информации из таблиц Themes, Tests,Questions, Question_variants, Results.

В Users_model описаны функции работы с таблицами Users иus_tes_res. Например, проверка существования логина пользователя при регистрации, извлечение информации о пройденных пользователем тестах для личного кабинета и др.

Admin_modelсодержит функции, отвечающие за выполнение запросов вставки, обновления и удаления контента.

Раздел 4. Контроллеры

Контроллер – класс, который обеспечивает связь между пользователем и системой, использует модель и представление для реализации необходимой реакции.

В данном проекте реализовано 6 контроллеров: administrator,auth,home,mycab,tests,themes.

Контроллер Administratorреализует логику админ-панели. К нему подключается модель admin_model, содержащая необходимые запросы к БД.

Authотвечает за аутентификацию пользователей. В нем также реализован метод регистрации пользователей сайта.

Контроллер Home– главная страница сайта. В файле конфигурации config.php указан как контроллер по умолчанию.

Контроллер Themesпроизводит просмотр пользователем списка всех тестов, относящихся к данной теме. Использует модель Tests_model.

Mycabявляется контроллером личного кабинета пользователя. Подключение моделей Users_modelиTests_modelпредоставляет функции для извлечения информации о пройденных текущим пользователем тестах.

Контроллер Testsреализует логические операции прохождения конкретного теста пользователем. Выполняется подсчет набранных баллов за каждый ответ на вопрос, выдача результата пройденного теста и занесение в БД информации о прохождении пользователем текущего теста. Для выполнения запросов используется модельTests_model. Для предотвращения подмены пользователем результатов теста используется библиотека encrypt реализующая шифровку и дешифровку данных.

Все перечисленные контроллеры являются наследниками класса MY_Controller, который расширяет стандартный класс контроллеров CI_Controller. КлассMY_Controllerсодержит функции отображения правой колонки сайта, приветствия, а также функцию передачи готового представления в браузер. Таким образом, нет необходимости описывать данные методы в каждом из контроллеров, что значительно сокращает количество повторяемого кода. Файл с описанием данного класса находится в папке application/core/.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]