CodeIgniter
— популярный
MVC
фреймворк
с открытым
исходным кодом
, написанный на
языке программирования
PHP
, для разработки полноценных
и приложений. Разработан компанией
(англ.)
(
, а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).
Старая версия CodeIgniter’а (CodeIgniter 2.x), как и более ранние версии, распространяются под проприетарной лицензией в стиле
Apache
/
BSD
, однако текущая ветвь CodeIgniter 4 перелицензирована под
MIT
.
История
Первый публичный релиз фреймворка произошёл 28 февраля 2006 года. С выходом версии 2.0 28-го января 2011 года CodeIgniter разделился на две ветки:
-
CodeIgniter Core — ветка, которая делает акцент на стабильности, в связи с чем развивается медленно. Эта версия фреймворка является ядром популярной
CMS
ExpressionEngine
2.0.
-
CodeIgniter Reactor — ветка, которую развивает сообщество. Эта ветка развивается быстро и содержит самые новые возможности.
9 июля 2013 года компания-разработчик в своём блоге разместила пост о поиске нового владельца для фреймворка
.
6 октября 2014 года EllisLab объявил, что CodeIgniter продолжит своё развитие под руководством
Технологического Института Британской Колумбии
.
30 марта 2015 года вышла версия CodeIgniter 3.0.0
Изменения версии:
-
Каркас выпущен под лицензией MIT
-
Драйверы
баз данных имели огромный рефакторинг
-
PDO является полностью функциональной с subdrivers
-
Появилась новая библиотека сессии
-
Появилась новая библиотека шифрования
-
Блок тестирования был доукомплектован, и покрытие кода улучшилось
-
Для работы рекомендуется PHP 5.4 или новее, но Codeigniter по-прежнему будет работать на PHP 5.2.4
8 октября 2015 года вышла версия CodeIgniter 3.0.2
31 октября 2015 года был выпущен CodeIgniter 2.2.6, и выпуск безопасности для 2.x версий.
Изменения в версии:
-
Исправлены XSS уязвимости в библиотеке безопасности метода xss_clean ().
-
Изменен метод конфигурации библиотеки base_url (), возврат к $ _SERVER ['server_addr'] для того, чтобы избежать инъекции заголовка узла.
-
Изменен помощник CAPTCHA.
Это последнее планируемое обновление для CodeIgniter 2x, которое достигло окончании срока службы.
1 ноября 2015 года была выпущена версия CodeIgniter 3.0.3 с патчами и некоторыми мелкими деталями. Это версия рекомендуется для всех пользователей версии 3x.
Особенности
-
CodeIgniter отличает простота
, которая достигается благодаря следующим факторам:
-
Качественная и полная документация с примерами, а также большое сообщество и Wiki
-
Множество видео-уроков, которые можно найти как на официальном сайте, так и на сторонних ресурсах
-
Фреймворк дает свободу программисту, не создавая каких-либо структурных ограничений и конвенций
-
Программисту не требуется учиться пользоваться генераторами кода из командной строки
-
CodeIgniter работает практически на любом
хостинговом
плане, который имеет поддержку PHP версии 5.1 и выше
-
CodeIgniter считается одним из быстрых и не требовательных к ресурсам фреймворков
Возможности
-
Поддержка баз данных
MySQL
,
PostgreSQL
,
MSSQL
,
SQLite
,
Oracle
.
-
Поддержка псевдо-
ActiveRecord
, который по большей части повторяет синтаксис языка
SQL
-
Легко расширяемая система за счет возможности использования сторонних и самописных библиотек, а также дополнения или переопределения существующих.
-
Поддержка как сегментированных
ЧПУ
, так и обычных URL-ов с передачей параметров.
-
Фреймворк содержит в себе множество необходимых библиотек, которые создают функциональность для работы с файлами, отправки электронных писем, валидации форм, поддержки сессий, работы с изображениями и так далее.
-
Обладает возможностью
кеширования
на стороне сервера
SQL-запросов
и генерируемых
html-страниц
. С версии 2.0 для кеширования могут использоваться
XCache
или
APC
.
-
В 2011 году появился менеджер пакетов под названием
, который позволяет легко установить сторонние библиотеки с помощью командной строки.
-
В 2011 году появилось дополнение, которое делает возможным поддержку
.
-
Поддержка модульности (HMVC) с помощью дополнений
-
По умолчанию CodeIgniter не использует шаблонизаторы, но есть возможность использовать его собственный или один из альтернативных шаблонизаторов (
Smarty
,
TinyButStrong
).
Примеры кода
Active Record
Выбрать все из таблицы
$this->db->get('table_name');
Эквивалент
SQL
:
SELECT * FROM `table_name`
Пример с операторами JOIN и LIMIT
public function getData($id = 0, $offset = 0, $limit = 30) {
$result = $this->db->select('table1.id, table2.name')
->from('table1')
->join('table2', 'table2.id=table1.id', 'left');
if ($id)
return $result->where('table1.id', (int)$id)->limit(1)->get()->row();
else
return $result->limit($limit, $offset)->get()->result();
}
Сценарий 1 (когда $id = 0):
Данные: $id = 0, $offset= 10, $limit = 30
SQL на выходе:
SELECT table1.id, table2.name
FROM table1
LEFT JOIN table2 ON table2.id = table1.id
LIMIT 10, 30
Функция вернет массив объектов. (db->result())
Сценарий 2 ($id отличен от нуля):
Данные: $id = 5, $offset = 0, $limit = 30
SQL на выходе:
SELECT table1.id, table2.name
FROM table1
LEFT JOIN table2 ON table2.id = table1.id
WHERE table1.id = 5
LIMIT 1
Функция вернет один объект (
db->row()
)
Критика фреймворка
-
Иногда CodeIgniter критикуют за необычную с точки зрения
объектно-ориентированного проектирования
архитектуру.
-
Некоторые приверженцы
CakePHP
считают, что свобода, предоставляемая программисту в CodeIgniter, поощряет расхлябанный стиль программирования.
-
Несмотря на то, что данный фреймворк используют многие профессиональные разработчики и веб-студии, многие считают, что CodeIgniter подходит только новичкам.
Влияние CodeIgniter
CodeIgniter послужил базой для таких фреймворков, как
Kohana
и
(англ.)
(
, многие идеи CodeIgniter применены во фреймворках
и
.
Фреймворк Kohana изначально был ветвью CodeIgniter и был создан с целью использования всех возможностей
PHP5
с сохранением простоты и высокой производительности CodeIgniter. Он отличался от CodeIgniter отсутствием поддержки
PHP4
и наличием некоторых дополнительных библиотек (ORM, Auth и других). Если версии Kohana 2.x все ещё чем-то были схожи с CodeIgniter, то современные версии (3.x) фактически не имеют с ним ничего общего, кроме истории.
На CodeIgniter основано множество
CMS
:
,
CMS
,
,
и другие.
Ссылки
-
(англ.)
— Сайт фреймворка
-
(рус.)
— Активный проект перевода документации на русский язык
-
(рус.)
— Документация на русском языке для версии 1.6.3
-
(рус.)
-
(недоступная ссылка)
(рус.)
-
— Легковесный фреймворк использующий идеологию, синтаксис, модули и плагины Codeigniter’a
-
(англ.)
— Сайт менеджера пакетов Sparks
-
(англ.)
— Блог Фила Старджена (Phil Sturgeon) — одного из активных разработчиков фреймворка
-
- Исследование безопасности CodeIgniter на HackerOne
Проекты, выполненные на CodeIgniter
-
(англ.)
— IDE для поэтов, исходники доступны на GitHub
-
(англ.)
См. также
Примечания
-
-
(неопр.)
. Дата обращения: 4 августа 2012.
31 июля 2012 года.
-
— 2006.
-
-
↑
(неопр.)
. Архивировано из
29 февраля 2012 года.
(рус.)
-
↑
(неопр.)
. Архивировано из
29 февраля 2012 года.
(англ.)
-
(неопр.)
. Архивировано из
29 февраля 2012 года.
(англ.)
-
(неопр.)
. Архивировано из
29 февраля 2012 года.
(англ.)
-
(неопр.)
. Архивировано из
29 февраля 2012 года.
(англ.)
-
(неопр.)
. Архивировано из
29 февраля 2012 года.
(англ.)
-
(неопр.)
. Pr0digy.com (3 сентября 2008). Дата обращения: 24 июля 2009. Архивировано из
29 февраля 2012 года.
(англ.)
-
10 марта 2010 года.
-
(неопр.)
. Дата обращения: 12 июля 2011.
11 июля 2011 года.
-
от 17 июня 2009 на
Wayback Machine
Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
-
(неопр.)
. Дата обращения: 12 июля 2011.
9 июля 2011 года.
-
(неопр.)
Дата обращения: 6 мая 2022.
16 апреля 2014 года.
-
25 апреля 2016 года.