Codeigniter framework что это такое

Обновлено: 06.07.2024

Скоро планируется релиз CodeIgniter 4 и я подготовил несколько статьей, посвященных этому php-фреймворку. Обычно, когда речь заходит о CodeIgniter, то возникают двоякие чувства: с одной стороны это легендарный фреймворк, который послужил хорошим стартом для многих проектов, а с другой, его история показывает, что случается с теми разработками, которые не получают должной поддержки и развития.

CodeIgniter 4 — это совершенно новая разработка, поэтому не стоит её рассматривать в связке со старыми 1/2/3 версиями. Команда разработчиков хорошо потрудилась — получился современный и качественный php-фреймворк.

История CodeIgniter

Нужно немного затронуть тему истории и особенностей CodeIgniter, потому что невольно он сравнивается с другими фреймворками.

История CodeIgniter берёт начало в 2006 году. Тогда только вышел PHP 5.1. Это наложило отпечаток на архитектуру проекта. К слову сказать, она оказалась продуманной, поэтому такой подход стали использовать в других php-разработках.

CodeIgniter проще всего сравнивать с Laravel. Ирония в том, что именно из-за прекращения развития CodeIgniter и появился Laravel и изначально очень сильно на него походил. Если будет желание, поищите Laravel 1, 2, 3 или 4-й версии — уверен, вам понравится. :-)

Вторая версия CodeIgniter появилась в 2011 году, где была прекращена поддержка PHP 4. Минимальной стала PHP 5.1.6, хотя уже вышла 5.3, но на хостингах это всё еще было редкостью.

Дальше мы не знаем что именно случилось, но CodeIgniter фактически прекратил свое развитие и где-то с 2012 года стали выходить только мелкие фиксы. До 2014 года особых проблем это не создавало, пока не вышел PHP 5.4, после 5.5 где уже были реализованы те самые возможности, которых так не хватало в PHP, и которые были реализованы на уровне самого CodeIgniter.

Потом, как мы помним, EllisLab хватило мужества отдать разработку CodeIgniter студентам из British Columbia Institute of Technology, после чего вышел CodeIgniter 3 (2015 год), который по сути оставался всё той же старой 2-й версией. Разрыв с PHP 5.6, а чуть позже и 7.0 стал критичным.

Несколько лет назад в BCIT осознали, что студентов нужно учить современным фреймворкам, и они объявили о начале работ над CodeIgniter 4, который по сути и был переписан с нуля. Нужно отдать должное разработчикам, это не просто гигантский объем работ, но они умудрились сохранить ту простоту кода, которой CodeIgniter всегда и славился.

Я упомянул Laravel не зря. Это хороший пример того, как основной разработчик дал слабину и его фреймворк свернул с пути простоты и удобства к сложному и запутанному коду (как это когда-то произошло с Symfony). Изначально Laravel использовал идеологию CodeIgniter — просто установить и просто использовать. Но в 5-й версии Laravel решили отказаться от этого в пользу «модульности». Теперь чтобы даже элементарно установить фреймворк требуется выполнить миллион загадочных действий с использованием Композера и консольных artisan-команд. Более того, разработчики Laravel вообще предлагают использовать отдельную виртуальную машину под своё детище.

Когда-то в Laravel 3 был такой about:

A PHP Framework For Web Artisans
Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax. Development should be a creative experience that you enjoy, not something that is painful. Enjoy the fresh air.

Сейчас это читается как издевательство. ;-(

В чём здесь проблема? Laravel стал развиваться за счёт сторонних модулей. Через Композер подтягивается еще несколько десятков сторонних проектов, включая множество модулей Symfony. То есть понять как работает фреймворк невозможно, поскольку всё не просто спрятано «под капотом», но и очень хитро переплетено с помощью искусственных «фасадов». Теперь недостаточно знать PHP, нужно ещё под рукой держать талмуд хелпов для каждого «чиха», а умение работать с artisan вообще является верхом шаманства.

Что в CodeIgniter 4? Вот тут они дают фору расспиаренным php-фреймворкам.

  • Просто установить — не нужны никакие дополнительные программы, Композер (хотя можно и через него) и виртуальные машины — достаточно даже zip-архив распаковать — все будет работать из коробки.
  • Просто пользоваться — автозагрузка классов, типовой web-вариант MVC, где известно расположение каждого файла.
  • Только свои модули — нет каталога vendor (а-а-а-а-а. ), то есть всё своё — родное. Но при этом нет проблем воспользоваться Композером — ставь любые сторонние библиотеки сколько душе угодно.
  • Высокая функциональность, которая покрывает большинство задач по созданию сайтов.
Строго говоря, CodeIgniter 4 использует три сторонних библиотеки: ZendEscaper для функции экранирования, Psr\Log для поддержки PSR 3 (протоколирование) и Kint для вывода отладочной информации.

Когда говорят, что CodeIgniter — только для новичков, то это ложь. Простота здесь как раз и есть признак хорошего кода. Возможностей CodeIgniter хватит для 80% задач любого сайтостроителя. А если не хватит, то можно воспользоваться сторонними разработками, как это делают другие фреймворки.

Впрочем, перейдем к практике. :-)

Установка CodeIgniter

Можно установить через Composer или git. Например так:

Будет создан каталог ci4, где окажутся все файлы дистрибутива. Там их довольно много, многие из них просто не нужны, поэтому мы сразу удалим лишнее. Получится вот так:

Теперь важный момент. CodeIgniter 4 предлагает размещать в публичной директории сервера (обычно это public_html) только фронт-контролёр (корневой index.php) и прочие web-файлы (стили, скрипты, изображения и т.п.). Это имеет смысл, если вы делаете что-то сверхсекретное и боитесь, что кто-то взломает сервер и похитит ваш супер-код. На практике это не имеет смысла (об этом чуть позже), поэтому мы будем размещать всё в одном web-каталоге.

Ещё раз подчеркиваю, что это не принципиально — для CodeIgniter всё равно каково будет расположение. Это мы делаем для себя.

Для этого содержимое public перенесем в корень ci4, а каталог public можно удалить. Получится так:

Теперь нужно открыть index.php и найти строчки:

Уберем точки в пути:

Что такое spark?

Сразу здесь об этом расскажу, чтобы после не возвращаться. Это консольная php-программа. Как artisan в Laravel. C помощью spark можно выполнять некоторые операции, например накатывать миграции или запустить локальный php-сервер. Поскольку мы поменяли расположение public, то в файле spark нужно указать корректный путь:

Проверить spark можно прямо в консоли:

Будет выведена информация о командах.

CodeIgniter используется модель MVC, где входящий url-запрос после роутинга попадает в контролёр.

Отмечу, что на самом деле CodeIgniter используется не «настоящий» MVC, а скорее MVP, или разновидность, которая называется MVC с пассивной моделью. Конечно же дело не в названии: просто на сегодняшний день это фактически единственная схема построения приложений для web (почти во всех php-фреймворках), где контролёр управляет моделью и представлением.

Все контролёры располагаются в каталоге app/Controllers . Откройте файл Home.php — это контролер для главной страницы (так настроено по умолчанию).

Обратите внимание, что класс Home расширяет BaseController. При этом BaseController находится в этом же каталоге. Сделано это для упрощения кода. Иначе пришлось бы расширяться от системного класса Controller и выполнять его инициализацию ( parent::initController ). В данном случае BaseController — это «базовый» контролёр для вашего приложения.

Из кода понятно, что контролёр использует представление (View) «welcome_message».

CodeIgniter в подкаталогах

Можно разместить CodeIgniter в подкаталоге. Это особенно актуально для виртуального хостинга, где в одном аккаунте может быть несколько сайтов. Что для этого нужно? Да в общем-то ничего. :-) Просто размещаете файлы в подкаталоге как обычно, CodeIgniter автоматом всё подхватит.

И это одна из причин, по которой мы отказались от каталога public. Иначе на сервере возникнет жуткая путаница, когда где-то в корне сервера располагается множество каталогов, которые даже не понятно к чему относятся.

Ну и «любовь» к отдельному public наблюдается в тех фреймворках, которые не заботятся о безопасности. Например в Laravel секретную информацию (база, почта и т.п.) размещают в текстовом файле .env . В CodeIgniter вся информация хранится в php-файлах (это же php-фреймворк!), поэтому даже если вызвать файл напрямую, то ничего не произойдёт.

  • development — режим отладки, где выводится вся подробная информация.
  • testing — режим вывода обычных php-ошибок.
  • production — это и есть режим по умолчанию.

Наиболее удобный режим development .

Кроме этого CodeIgniter по-умолчанию создаёт лог ошибок, который располагается в каталоге writable/logs . Отключить ведение лога можно в файле app/Config/Exceptions.php , указав $log = false;

Неточности в документации

CodeIgniter 4 пока ещё не вышел, поэтому в его документации пока ещё много ошибок и неточностей.

ps Статьи о CodeIgniter 4 я разделил на несколько циклов. Пока готов первый до использования базы данных.

Здравствуй всеми уважаемый хабрахабр. В этой статье речь пойдёт о замечательном PHP фреймворке CodeIgniter (сокращённо CI). CodeIgniter — популярный PHP фреймворк с открытым исходным кодом, позволяющий создавать многофункциональные и безопасные веб-приложения с MVC архитектурой. Разработан компанией EllisLab.
Зачем делать всё с нуля и каждый раз переписывать по 1000 строк кода? Зачем тратить много времени на понятие собственного кода? Вам повезло если в вашем проекте мало строк кода и он хорошо документирован, но если у вас более 1000 файлов и в придачу код безобразно раскидан, то маленькое исправление может занять кучу времени. Выход есть! Рано или поздно вам придётся использовать фреймворк.

Так что же такое фреймворк

Фреймворк (каркас, структура) — программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек.

Личный опыт

Когда я начинал разрабатывать приложения на чистом PHP, то я тратил очень много времени, долго искал баг, переписывал много строчек кода. Позже я стал использовать функции, но и это тоже не спасало. Я очень долго гуглил и нашёл идеальное решение — использование фреймворков В данный момент я использую CodeIgniter, о котором я сейчас расскажу.

Почему именно CodeIgniter

CodeIgniter — это фреймворк написанный на PHP. Первый публичный релиз CI состоялся в 2006 году (7 лет назад). Он быстро набирал популярность благодаря своей простоте, и быстроте. На данный момент актуальная версия 2.1.3. CodeIgniter использует MVC архитектуру, что позволяет всё разложить по полочкам. Ниже вы можете увидеть процесс работы CI. Имеет поддержу библиотек, хелперов, хуков. Также имеется встроенная система кэширования.

И так о плюсах CodeIgniter

Отличная и понятная документация

Действительно у CodeIgniter очень богатая и понятная документация, и её приятно читать. Всё пояснено примерами кода, который можно просто скопировать и использовать у себя. Также документация уже давно переведена на русский язык, так что вам не составит большого труда, чтобы изучить CodeIgniter.

Не требует большое количество ресурсов

CodeIgniter может работать почти на всех хостингах с поддержкой PHP не ниже 5.1 версии. Благодаря своей грамотной структуре CI не нагружает систему и очень шустро работает. Сейчас я не буду сравнить скорость работы с другими фреймворками, так как холивары ни к чему.

Очень прост в использовании

Разработка приложений на CodeIgniter имеет другой стиль, чем просто писать на чистом PHP. Вам покажется, что надо надо многое учить, чтобы разрабатывать на фреймворке, но я обрадую вас, CI очень легко и быстро учится. На CodeIgniter можно разрабатывать лёгкие и средние приложения, но для более сложных проектов лучше выбрать другой фреймворк.

Скорость генерации страниц.

CodeIgniter очень быстр в работе. И это действительно так, а если вы не верите, то можете проверить сами.

Поддержка большого количества баз данных

При помощи своих встроенных драйверов CodeIgniter может работать с разными базами данных, таким как: MySQL, PostgreSQL, MSSQL, SQLite, Oracle. Также имеется PDO драйвер, что крайне удобно. В CI реализован шаблон проектирования ActiveRecord для работы с базами данных.

Большое количество стандартных библиотек и классов

Чтобы вы не захотели бы сделать, CodeIgniter найдёт решение на большинство ваших идей. Перечислять все библиотеки, хелперы и классы я не буду, так как их очень много. Но перечислю которыми пользуюсь я: pagination, captcha_helper, form validation, xmlrpc, email, url_helper, security_helper.

Множество ресурсов по CI.

В интернете существует огромное количество сайтов, посвящённых CodeIgniter. Так что найти библиотеки сторонних разработчиков или найти ответ на свой вопрос по CI не составит большого труда. Ниже в статье будут ссылки на различные ресурсы.

Минусы CI

Слабая система кэширования

Система кэширования в CodeIgniter работает лишь с целыми страницами, но с частями страницы, и это не очень удобно. А это значит, что вам придётся писать свою систему кэширования или прикручивать уже готовые варианты. Хотя при такой скорости, кэширование и не нужно.

Плохой стиль написания

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

Нету паттерна Registry

Из-за отсутствия паттерна Registry приходится писать довольно глупую вещь "$CI = &getInstance();" для доступа библиотек к ядру фреймворка.

Руководство по CodeIgniter

В данном руководстве по CodeIgniter мы представим этот фреймворк. Рассмотрим, как установить и настроить CodeIgniter на виртуальный хостинг от Hostinger, и, к тому же, построим первое приложение на PHP, используя этот популярный фреймворк. Также расскажем об MVC и чем эта схема помогает в современной веб разработке.

Что такое CodeIgniter?

Сегодня в сфере веб разработки ценится эффективность и модульность. Прошли те времена, когда вам надо было переписывать один и тот же код для нескольких приложений или прилагать коллективные усилия для быстрого создания приложения. Современные веб фреймворки делают это за вас.

CodeIgniter один из таких фреймворков доступных для PHP-разработчиков. Вероятно, самый популярный среди подобных, он очень ускоряет веб разработку на PHP благодаря многочисленным библиотекам и пакетам. Библиотеки удобно применять там, где распространено повторное использование кода, снимая с разработчиков необходимость выполнять рутинную работу.

Основанная на архитектуре Модель-Представление-Контроллер (Model View Controller), CodeIgniter также добавляет логическое разбиение для вашего приложения. Это отражается не только на чистоте и лучшей структурированности приложения, но и полезно для распараллеливания циклов разработки. В результате в ваши продукты легко вносить изменения и можно значительно ускорить их выход на рынок.

Предполагается, что вы имеете базовые знания в PHP и опыт работы с командной строкой в Linux.

Что понадобится

  • SSH доступ к виртуальному хостингу или VPS или любой другой текстовый редактор

Шаг 1 – установка Codeigniter

Для установки CodeIgniter, вам понадобится либо виртуальный хостинг Hostinger или LAMP (Linux, Apache, MySQL, PHP) уже готовые к работе и запущенные на VPS или на вашей локальной системе. Данное руководство подходит для выполнения на любом дистрибутиве Linux; разумеется, мы используем аккаунт на виртуальном хостинге от Hostinger.

Прежде всего, зайдите по SSH в свой аккаунт. Если вы не уверенны, что знаете как это сделать, посмотрите это руководство.

Чтоб начать процесс установки откройте терминал и войдите в каталог public_html. В нашем случае это можно сделать следующей командой:

Теперь нужно скачать последнюю версию CodeIgniter. Это можно сделать посетив официальную страницу для скачивания, и закачав оттуда zip файл. На момент написания этого руководства, последняя выпущенная стабильная версия CodeIgniter была 3.1.4.:

Для распаковки файла выполните эту команду:

Если вы устанавливаете CodeIgniter на VPS, возможно, у вас в системе ещё не установлен Zip. В таком случае, вы получите ошибку при выполнении предыдущей команды. Вы можете легко это разрешить, скачав и установив unzip, например, так:

Теперь вы сможете распаковать при помощи unzip вашу копию CodeIgniter.
После распаковки вы увидите каталог с названием CodeIgniter-3.1.4. Вы можете его переименовать для удобства, например, так:

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

Codeigniter Tutorial Welcome Screen

Шаг 2 – настройка Codeigniter

Так как вы только установили CodeIgniter, то первым делом его нужно настроить. Хотя это и самая объёмная часть нашего руководства, к счастью, настройку CodeIgniter нужно делать всего раз, после установки.

Создание новой БД на Hostinger

В начале процесса настройки CodeIgniter нужно предоставить всю необходимую информацию о вашей базе данных MySQL. Это можно сделать изменяя файл database.php в комплекте поставки CodeIgniter. Откройте файл запустив следующую команду:

Теперь вам видно содержимое файла. Нужно найти следующую часть файла и включить туда информацию по настройкам вашей базы данных MySQL. Например, для подключения к базе данных, созданной в Hostinger, файл настройки должен выглядеть вот так.

Как только вы обновите файл соответствующей информацией, сохраните его и закройте. И это всё – вы успешно синхронизировали вашу базу данных с CodeIgniter.
Следующим действием нужно прописать ваше доменное имя. Для этого откройте файл config.php:

После открытия найдите и отредактируйте строку.

2.1 Настройка виртуального хоста на VPS

Пропустите этот раздел, если вы устанавливаете Codeigniter на виртуальный хостинг Hostinger.


Виртуальный хост удобен, если вы собираетесь запустить несколько приложений, используя одно доменное имя. Это может помочь, если у вас есть один VPS и несколько приложений, продуктов или чего-либо ещё, запущенного на нём. Вы можете создавать виртуальные хосты при помощи сервера Apache.

Хотя создание виртуальных хостов и выходит за рамки этого руководства, всё же вам нужно сделать некоторые дополнительные изменения в настройках CodeIgniter перед началом разработки.

Прежде всего, нужно убедиться, что корень документа синхронизирован с каталогом установки CodeIgniter. Для этого откройте файл виртуального хоста:

В открытом файле ищите такой блок и вставляйте каталог установки после Document Root:

Убедитесь, что путь /path/to изменён на настоящий.

Теперь все ваши URL-ссылки будут указывать туда, где установлен CodeIgniter.
Для следующих изменений нужны некоторые разъяснения. По умолчанию CodeIgniter придерживается следующего формата URL-ссылки:

Как видите, index.php единственная статическая часть URL-ссылки. В целях поддержания хорошей практики разработки, попробуем избавится и от него.

Для этого откроем ещё раз файл config.php:

И заменим следующую строку:

Прежде чем это сделать, проверьте включён ли у вас mod_rewrite:

Этой командой Apache отобразит список всех возможностей сервера. Если в списке среди них вы найдёте mod_rewrite, переходите к следующей команде. Если же нет, то выполните такую команду:

И перезапустите ваш сервер:

Теперь, создайте файл .htaccess в корне каталога CodeIgniter:

Эта команда создаст и откроет файл .htaccess. Разместите такие строки в файле, сохраните и выйдите из него:

И наконец, нужно дать знать серверу Apache, что он должен проверить вновь созданный файл .htaccess. Чтобы сделать это, откройте файл виртуальных хостов и убедитесь, что AllowOverride установлено в значение All:

Теперь в своём ULR вы не будете видеть немилый глазу index.php. В результате, ваши URL-адреса будут выглядеть чисто и красиво.

Шаг 3 – Понимание MVC

Чтобы лучше понять, что же делает фреймворк, такой как CodeIgniter, стоит часть этого руководства посвятить освещению вопроса, что такое MVC.

MVC является преимущественно парадигмой архитектуры веб-разработки, которая рекомендует, чтобы в каждом приложении бизнес-логика отделялась от визуальной части – представления. Этот подход делит приложение на три функциональные части: Модель, Представление и Контроллер.

Модель выполняется всю грязную работу – она ответственная за взаимодействие с базой данных, проведение вычислений и так далее. Коротко говоря, это ваша бизнес-логика. Представление, с другой стороны, ничего не делает с логикой приложения. Оно формирует презентационный слой для приложения, где данные, пришедшие от Модели, встраиваются в страницы при их загрузке. Контроллер это связующее звено между Моделью и Представлением. Он направляет запрос пользователя к нужной модели и как только модель выполнит свою работу, он загрузить соответствующее Представление.

Поскольку CodeIgniter поддерживает объектно-ориентированное программирование (ООП), все модели и контроллеры это PHP классы, расширяющие основные классы предоставленные фреймворком. Представление это так же файлы PHP, но только в названии, так как внутри они содержат HTML/CSS. Для отображения данных, предоставленных Моделью, присутствуют только фрагменты кода PHP.

MVC даёт разработчику дополнительную гибкость в терминах повторного использования кода и разделения дизайна и реализации. У вас могут быть вложенные части интерфейса и вам не придётся писать один и тот же код для разных представлений – хорошим примером может быть панель навигации на каждой странице приложения. И, так как уровень модели и уровень представления разделены, разработчики интерфейса могут работать параллельно с основной командой разработчиков, тем самым значительно сокращая время создания приложения.

3.1 Основы маршрутизация (роутинга)

Как CodeIgniter формирует URL уже рассматривалось выше:

В предыдущем разделе мы увидели, как удалить index.php из формата адреса. В результате этот шаблон транслируется в ссылки URL подобные этой:

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

3.2 Библиотеки

Другая полезная особенность CodeIgniter – это использования существующих средств для быстрого решения общих задач. CodeIgniter делает это, предоставляя библиотеки и вспомогательные функции помощники(helpers). Конкурентным преимуществом CodeIgniter также является предоставление возможности выбирать, какие библиотеки и когда загружать. Как результат быстрые, легкие и многофункциональные приложения, так как библиотеки подгружаются по требованию.

Загрузить библиотеку в CodeIgniter очень просто. Например, чтобы загрузить библиотеку базы данных, просто передайте эту строку своей модели или контроллеру (рекомендуется использовать модель, хотя и не обязательно в CodeIgniter):

Конечно, некоторые библиотеки и помощники на столько часто применяются, что удобнее делать их автозагрузку сразу при загрузке приложения. В качестве примера может быть библиотека базы данных, так как база данных это неотъемлемая часть любого современного веб-приложения и URL помощник, который может оказаться полезным при загрузке URL-адресов.
Чтобы установить автозагрузку библиотеки базы данных, откройте следующий файл:

После открытия измените строку:

Можно загрузить дополнительные библиотеки в методе array(), разделяя их запятыми.

Аналогично для помощников замените эту строку:

Теперь, когда вы знаете больше о MVC, надеемся вы сможете по достоинству оценить чудеса CodeIgniter.

Шаг 4 – Создание простого приложения с помощью CodeIgniter

И вот, от формальностей настройки мы добрались до самой интересной части руководства. На этом этапе нужно будет запустить свой CodeIgniter с изменениями, которые мы внесли на Шаге 2. Вам так же уже должно быть понятно, как работает Модель, Представление и Контроллер в CodeIgniter. В этом разделе мы будем применять эти знания в создании простого веб приложения на CodeIgniter.
Приложение будет очень простым по структуре: при помощи нашей модели мы будет доставать обзоры видео из нашей базы данных и показывать их в нашем представлении. Контроллер будет выполнять маршрутизацию запросов между моделью и представлением. Когда вы получите основы применения CodeIgniter, вы сможете построить более сложное приложение.

Step 4.1 Требования

Как уже говорилось во Вступлении к этому руководству, нужно, чтобы у вас были базовые знания MySQL. Для нашего простого приложения нам нужно будет создать таблицу с названием reviews и 3 колонки: id (primary key и самоинкрементирующееся), title и grade.

База данных MySQL для CodeIgniter

Эта таблица будет базой для нашего приложения, поэтому нужно её сделать прежде всего. Далее предоставить доступ CodeIgniter к вашей базе данных, следуя инструкциям из Шага 2. После создания таблицы, заполните её произвольными значениями.

Step 4.2 Модель

После того, как вы разобрались с базой данных, мы можем начать работу над бизнес-логикой. Для этого создадим модель, которая будет получать значения из базы данных.

Модель располагается в каталоге applications/models CodeIgniter. Распределение по каталогам поможет избежать беспорядка в структуре приложения. Переходите в каталог и создавайте новый PHP-файл с названием reviews_model.php.

Как только создали, скопируйте в файл следующий код:

Как видите, класс модели News_model расширяет родительский класс CI_Model, предоставляемый CodeIgniter. Также обратите внимание, что первая буква названия класса должна быть заглавной – это требования CodeIgniter к именованию классов.

Теперь нужно загрузить библиотеку работы с базами данных, о которой мы говорили на Шаге 3. Это позволит с лёгкостью работать с базами данных. Вы можете использовать метод конструктора модели, который загрузит библиотеку при запуске. Для этого разместите следующий код в созданном выше классе:

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

Метод, код которого приведен выше, принимает ID, как аргумент, и возвращает все данные из строки в таблице reviews, связанные в этим ID. Таким образом, этот метод будет вызываться каждый раз, когда мы запрашиваем обзор фильма.

Step 4.3 Контроллер

Мы позаботились о слое доступа к данным. Теперь нужно создать маршрут, чтобы, когда пользователь запрашивает обзоры видео, наше, ещё не созданное представление, было обеспечено данными, которые мы получили при помощи модели.

Для создания нового контроллера перейдите в каталог application/controllers и создайте там файл reviews.php. Помните: контроллер в CodeIgniter должен называться также, как и определяемый класс внутри файла.
После создания файла откройте его и вставьте такой код:

Всё, что нам потребуется, это спаковать данные, полученные нашей моделью и передать их представлению. Для этого создадим метод show(), который свяжет данные с вновь созданной структурой и загрузит их в представление.

Массив $data – это ассоциируемый массив , с ключами title и grade, соответствующими значениям, полученным из базы данных. Этот массив передаётся в представление с именем movie_review и загружается для отображения.

Step 4.4 Представление

И наконец, мы создаёт представление, которое отобразить запрашиваемые отзывы о видео.

Войдите в каталог application/views и создайте там файл movie_review.php. Обратите внимание, что название файла должно совпадать с тем, которое вы сообщили контроллеру для загрузки (последняя строка метода show()). После создания файла скопируйте в него этот код:

Представление отображает название видео и отзыв из массива $data, переданного контроллером. Не обязательно говорить, что результат будет не особо привлекательным, так как мы не подключили никаких стилей для нашего представления. Конечно, вы можете добавить стили прямо здесь (что не очень рекомендуется) или подключить внешний CSS файл.

Наше пробное приложение готово. Вы можете запустить это приложение в браузере по адресу:

Это вызовет контроллер reviews, который мы создали на шаге 4.3 и вызовет его метод show() со входным параметром 1. Этот параметр принимается как идентификатор видео ID; что будет использовано, как запрос к базе данных для получения данных о видео с В результате, пользователь теперь может видеть название и отзыв первого в базе данных видео.

Заключение

В этом углублённом руководстве CodeIgniter, мы познакомились с тем, как установить и настроить его, а также создали простое приложение, используя фреймворк. Мы также рассмотрели MVC – основной принцип стоящий за организацией фреймворка CodeIgniter и почему он так полезен в современных веб-приложениях.

В виду того, что наш пример приложения был достаточно прост: с одной моделью, представлением и контроллером и единой базой данных, мы надеемся, что вам будет более понятна именно структура и функционирование CodeIgniter.

Прочитав руководство и разобравшись в нём, вам станет яснее как, используя CodeIgniter, построить динамические, масштабируемые и выдерживающие нагрузку приложения быстрее, чем раньше, применяя всю мощность библиотек и помощников фреймворка. Мы надеемся, что смогли вам показать, как прост и одновременно функционален CodeIgniter и желаем вам успехов в вашем развитии как веб-разработчика и в частности продуктивной работы с PHP-фреймворками.

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

CodeIgniter - это мощный PHP-фреймворк с очень небольшим объемом данных, созданный для разработчиков, которым нужен простой и элегантный инструментарий для создания полнофункциональных веб-приложений. CodeIgniter был создан компанией EllisLab, и в настоящее время является проектом британского Колумбийского технологического института.

Если вы хорошо знаете PHP, то CodeIgniter сделает вашу задачу проще. Он имеет очень богатый набор библиотек и помощников. Используя CodeIgniter, вы сэкономите много времени, если разрабатываете сайт с нуля. Кроме того, веб-сайт, встроенный в CodeIgniter, также безопасен, поскольку он имеет возможность предотвращать различные атаки, которые происходят через веб-сайты.

Руководство по CodeIgniter

Некоторые из важных особенностей CodeIgniter:

  • система на основе контроллера вида модели
  • чрезвычайно легкий вес
  • полнофункциональные классы баз данных с поддержкой нескольких платформ
  • поддержка базы данных построителя запросов
  • проверка формы и данных
  • безопасность и XSS-фильтрация
  • управление сеансом
  • класс отправки электронной почты: поддерживает вложения, HTML / текстовую электронную почту, несколько протоколов (sendmail, SMTP и Mail) и многое другое
  • библиотека обработки изображений (обрезка, изменение размера, поворот и т.д.), поддержка GD, ImageMagick и NetPBM
  • класс загрузки файлов
  • класс FTP
  • локализация
  • пагинация
  • шифрование данных
  • тестирование
  • полное кэширование страниц
  • журнал ошибок
  • профилирование приложений
  • календарный класс
  • класс агента пользователя
  • класс кодирования Zip
  • класс шаблонного движка
  • класс Trackback
  • библиотека XML-RPC
  • класс модульных испытаний
  • удобные для поиска URL-адреса
  • гибкая маршрутизация URI
  • поддержка крючков и расширений классов
  • большая библиотека "вспомогательных" функций

Установка CodeIgniter

Очень легко установить CodeIgniter. Просто следуйте инструкциям, приведенным ниже:

Есть два различных варианта legacy и latest. Сами имена являются самоописательными. legacy имеет версию менее 2.x и последнее имеет версию 3.0.

Мы также можем пойти в GitHub и получить все последние сценарии.

  1. Распакуйте папку.
  2. Загрузите все файлы и папки на свой сервер. После загрузки всех файлов на ваш сервер, посетите URL-адрес вашего сервер.

Архитектура приложения CodeIgniter показана ниже.

  • Как показано на рисунке, всякий раз, когда запрос поступает в CodeIgniter, он сначала перейдет в index.php страницу.
  • На втором этапе маршрутизация решит, следует ли передать этот запрос для кэширования или передать этот запрос в для проверки безопасности.
  • Если запрошенная страница уже находится в кэшировании, то маршрутизация передаст запрос , и ответ вернется к пользователю.
  • Если запрошенная страница не существует в кэшировании, то маршрутизация передаст запрошенную страницу для проверки безопасности.
  • Перед передачей запроса в Application Controller проверяется безопасность представленных данных. После проверки безопасности контроллер приложения загружает необходимые модели, библиотеки, помощники, плагины и скрипты и передает их на просмотр.
  • Представление отобразит страницу с доступными данными и передаст ее для кэширования. Поскольку запрошенная страница не была кэширована ранее, поэтому на этот раз она будет кэшироваться в кэшировании, чтобы быстро обработать эту страницу для будущих запросов.

Структура каталогов CodeIgniter разделена на 3 папки:

  • Приложение
  • Система
  • Руководство пользователя

Приложение

Поскольку имя указывает, что папка приложения содержит весь код вашего приложения, которое вы создаете. Это папка, в которой вы будете разрабатывать свой проект. Папка приложения содержит несколько других папок, которые описаны ниже:

  • Кэш - эта папка содержит все кэшированные страницы вашего приложения. Эти кэшированные страницы увеличат общую скорость доступа к страницам.
  • Config - эта папка содержит различные файлы для настройки приложения. С помощью конфигурации.php-файл, пользователь может настроить приложение. Использование базы данных.php-файл, пользователь может настроить базу данных приложения.
  • Контроллеры - эта папка содержит контроллеры вашего приложения. Это основная часть вашего приложения.
  • Core - эта папка будет содержать базовый класс вашего приложения.
  • Helpers - в этой папке вы можете поместить вспомогательный класс вашего приложения.
  • Hooks - файлы в этой папке предоставляют средства для подключения и изменения внутренней работы фреймворка без взлома основных файлов.
  • Язык - эта папка содержит файлы, связанные с языком.
  • Библиотеки - эта папка содержит файлы библиотек, разработанных для вашего приложения.
  • Журналы - эта папка содержит файлы, связанные с журналом системы.
  • Модели - логин базы данных будет помещен в эту папку.
  • Third_party - в этой папке вы можете разместить любые плагины, которые будут использоваться для вашего приложения.
  • Просмотры - файлы HTML приложения будут размещены в этой папке.

Система

Эта папка содержит основные коды CodeIgniter, библиотеки, помощники и другие файлы, которые помогают упростить кодирование. Эти библиотеки и помощники загружаются и используются в разработке веб-приложений.

CodeIgniter

Эта папка содержит все CodeIgniter код следствия, организованные в различные папки:

  • Core - эта папка содержит класс ядра CodeIgniter. Не изменяйте здесь ничего. Вся ваша работа будет проходить в папке приложения. Даже если вы намерены расширить ядро CodeIgniter, вы должны сделать это с помощью крюков, а крюки живут в папке приложения.
  • База данных - папка базы данных содержит основные драйверы базы данных и другие утилиты базы данных.
  • Шрифты - папка fonts содержит информацию о шрифтах и утилиты, связанные с ними.
  • Helpers - папка helpers содержит стандартные помощники CodeIgniter (такие как date, cookie и URL helpers).
  • Язык - языковая папка содержит языковые файлы. А пока можешь не обращать на это внимания.
  • Библиотеки - папка библиотеки содержит стандартные библиотеки CodeIgniter (чтобы помочь вам с электронной почтой, календарями, загрузкой файлов и многое другое). Вы можете создать свои собственные библиотеки или расширить (и даже заменить) стандартные, каталоге приложений/библиотек, чтобы держать их отдельно от стандартных библиотек CodeIgniter, сохраненных в этой конкретной папке.

Руководство пользователя

Это ваше руководство пользователя для CodeIgniter. Это в основном, автономная версия руководства пользователя на веб-сайте CodeIgniter. С его помощью можно изучить функции различных библиотек, помощников и классов. Рекомендуется пройти через это руководство пользователя, прежде чем создавать свое первое веб-приложение в CodeIgniter.

Читайте также: