
- •Курсовая работа
- •Глава 1. Теоретические сведения
- •Раздел 1. Рнр
- •Раздел 2. Denwer
- •Раздел 3. MуSql
- •Раздел 4. CodeIgniter
- •Глава 2. Практика.
- •Раздел 1. Разработка структуры и создание базы данных
- •Раздел 2. Фреймворк CodeIgniter. Настройка и совмещение с веб-сервером Denwer
- •Раздел 4. Модели
- •Раздел 4. Контроллеры
- •Раздел 5. Разработка шаблонов и описание функционала
Раздел 4. CodeIgniter
Многие разработчики сайтов часто, чтобы не писать код с нуля, используют фреймворк. Он помогает упорядочивать разработку, экономить время, с помощью него можно добиться сокращения количества повторяющегося кода.
Наиболее известными фреймворками для PHPявляютсяCakePHP(http://www.cake-php.ru),Kohana(http://kohanaframework.org),CodeIgniter(http://www.codeigniter.ru),Zend(http://www.framework.zend.com). Все они направлены на помощь разработчику и каждый из них имеет свои плюсы и минусы.
Для создания веб-сайта выбор был сделан в пользу CodeIgniter.
Основой работы CodeIgniterявляется использование подходаMVC(Model-View-Controller, Рис.1) - архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие. ШаблонMVCпозволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента.
Контроллер (Controller) отправляет запрос в модель (Model), которая изменяет своё состояние и предоставляет данные. Представление (View) отвечает за отображение информации. Поведение (Controller) интерпретирует данные, которые вводились пользователем, и информируют модель и представление о необходимости соответствующей реакции.
Рис.1. MVC-модель.
Без применения CodeIgniterи дополнительных библиотек, содержащих регулярные выражения, ссылки, по которым осуществляется переход на другие страницы, будут иметь примерно такой вид:http://mathmod.aspu.ru/?id=2. Такие ссылки непонятны пользователю и плохо запоминаются. С помощьюCodeIgniter, возможно построение ЧПУ - понятного для человека представленияURL(UniformResourceLocator).
Например, http://test.nn/tests/index/1 - в этой ссылке каждый сегмент имеет своё значение:tests- контроллер, к которому идёт обращение,index- метод соответствующего контроллера, 1 - переменная, передающаяся в указанный метод (в данном случае при переходе по ссылке будет произведен запуск теста с идентификатором "1"). Использование таких ссылок даёт несколько преимуществ. Помимо того, что эти ссылки будут легко читаемы и запоминаемы, они оказывают влияние на выдачу сайта в поисковых системах.
Фреймворк CodeIgniterобладает следующими особенностями:
работает практически на любом хостинговом плане, который имеет поддержку PHP версии 5.1 и выше;
считается одним из быстрых и не требовательных к ресурсам фреймворков. Основное ядро CodeIgniterтребует небольшого количества библиотек. Дополнительные библиотеки загружаются динамически по запросу, в зависимости от потребностей в тот или иной момент, так что ядро остается очень гибким и быстрым;
Малый размер дистрибутива;
Фреймворк позволяет отказаться от моделей (несмотря на то, что это не приветствуется и не является хорошей практикой);
CodeIgniterобладает такими возможностями, как:
Поддержка баз данных MySQL, PostgreSQL, MSSQL, SQLite, Oracle;
Поддержка класса ActiveRecord, который по большей части повторяет синтаксис языка SQL;
Легко расширяемая система за счет возможности использования сторонних и самописных библиотек, а также дополнения или переопределения существующих;
Поддержка как сегментированных ЧПУ, так и обычных URL-ов с передачей параметров;
Фреймворк содержит в себе множество необходимых библиотек, которые создают функционал для работы с файлами, отправки электронных писем, валидации форм, поддержки сессий, работы с изображениями и т.д.;
Возможность кеширования на стороне сервера SQL-запросов и генерируемых html-страниц. С версии 2.0 для кеширования могут использоваться XCache или APC;
По умолчанию CodeIgniter не использует шаблонизаторы, но есть возможность использовать его собственный или один из альтернативных шаблонизаторов.