CodeIgniter
CodeIgniter | |
---|---|
Тип | Программный каркас для создания веб-приложений |
Авторы | EllisLab, Inc. |
Разработчик | British Columbia Institute of Technology |
Написана на | PHP[3] |
Операционная система | Кроссплатформенный |
Первый выпуск | 28 февраля 2006 |
Последняя версия |
|
Репозиторий | github.com/bcit-ci/CodeI… |
Состояние | в активной разработке |
Лицензия | CodeIgniter License Agreement[2] |
Сайт | codeigniter.com |
CodeIgniter — популярный MVC фреймворк с открытым исходным кодом, написанный на языке программирования PHP, для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab[англ.], а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).
Старая версия CodeIgniter’а (CodeIgniter 2.x), как и более ранние версии, распространяются под проприетарной лицензией в стиле Apache/BSD, однако текущая ветвь CodeIgniter 4 перелицензирована под MIT[4].
История
[править | править код]Первый публичный релиз фреймворка произошёл 28 февраля 2006 года. С выходом версии 2.0 28 января 2011 года CodeIgniter разделился на две ветки:
- CodeIgniter Core — ветка, которая делает акцент на стабильности, в связи с чем развивается медленно. Эта версия фреймворка является ядром популярной CMS ExpressionEngine 2.0.
- CodeIgniter Reactor — ветка, которую развивает сообщество. Эта ветка развивается быстро и содержит самые новые возможности.
9 июля 2013 года компания-разработчик в своём блоге разместила пост о поиске нового владельца для фреймворка EllisLab Seeking New Owner for CodeIgniter.
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 отличает простота[5], которая достигается благодаря следующим факторам:
- Качественная и полная документация с примерами, а также большое сообщество и Wiki[5][6]
- Множество видео-уроков, которые можно найти как на официальном сайте, так и на сторонних ресурсах[7][8][9][10]
- Фреймворк дает свободу программисту, не создавая каких-либо структурных ограничений и конвенций
- Программисту не требуется учиться пользоваться генераторами кода из командной строки
- CodeIgniter работает практически на любом хостинговом плане, который имеет поддержку PHP версии 5.1 и выше
- CodeIgniter считается одним из быстрых и не требовательных к ресурсам фреймворков[6][11]
Возможности
[править | править код]- Поддержка баз данных MySQL, PostgreSQL, MSSQL, SQLite, Oracle.
- Поддержка псевдо-ActiveRecord, который по большей части повторяет синтаксис языка SQL
- Легко расширяемая система за счет возможности использования сторонних и самописных библиотек, а также дополнения или переопределения существующих.
- Поддержка как сегментированных ЧПУ, так и обычных URL-ов с передачей параметров.
- Фреймворк содержит в себе множество необходимых библиотек, которые создают функциональность для работы с файлами, отправки электронных писем, валидации форм, поддержки сессий, работы с изображениями и так далее.
- Обладает возможностью кеширования на стороне сервера SQL-запросов и генерируемых html-страниц. С версии 2.0 для кеширования могут использоваться XCache или APC.
- В 2011 году появился менеджер пакетов под названием Sparks, который позволяет легко установить сторонние библиотеки с помощью командной строки.
- В 2011 году появилось дополнение, которое делает возможным поддержку миграций.
- Поддержка модульности (HMVC) с помощью дополнений
- По умолчанию CodeIgniter не использует шаблонизаторы, но есть возможность использовать его собственный или один из альтернативных шаблонизаторов (Smarty, TinyButStrong[12]).
Примеры кода
[править | править код]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 и Rain Framework[англ.], многие идеи CodeIgniter применены во фреймворках Fuel PHP[13] и CodeLighter[14].
Фреймворк Kohana изначально был ветвью CodeIgniter и был создан с целью использования всех возможностей PHP5 с сохранением простоты и высокой производительности CodeIgniter. Он отличался от CodeIgniter отсутствием поддержки PHP4 и наличием некоторых дополнительных библиотек (ORM, Auth и других). Если версии Kohana 2.x все ещё чем-то были схожи с CodeIgniter, то современные версии (3.x) фактически не имеют с ним ничего общего, кроме истории.
На CodeIgniter основано множество CMS: Fuel CMS[15], MaxSite CMS[16], Cogear[17], ImageCMS и другие.
Ссылки
[править | править код]- codeigniter.com (англ.) — Сайт фреймворка
- Официальный форум (англ.)
- Документация 4 версии (англ.)
- codeigniter3.info (рус.) — Активный проект перевода документации на русский язык
- code-igniter.ru (рус.) — Документация на русском языке для версии 1.6.3
- Форум (рус.)
- Wiki-раздел (недоступная ссылка) (рус.)
- CodeLighter — Легковесный фреймворк использующий идеологию, синтаксис, модули и плагины Codeigniter’a
- Sparks (англ.) — Сайт менеджера пакетов Sparks
- philsturgeon.co.uk (англ.) — Блог Фила Старджена (Phil Sturgeon) — одного из активных разработчиков фреймворка
- CodeIgniter на HackerOne - Исследование безопасности CodeIgniter на HackerOne
Проекты, выполненные на CodeIgniter
[править | править код]- tranquillpoet.com (англ.) — IDE для поэтов, исходники доступны на GitHub
- Project Bubble — система управления проектами (англ.)
См. также
[править | править код]Примечания
[править | править код]- ↑ https://github.com/codeigniter4/CodeIgniter4/blob/v4.4.1/CHANGELOG.md
- ↑ CodeIgniter License Agreement . Дата обращения: 4 августа 2012. Архивировано 31 июля 2012 года.
- ↑ The codeigniter Open Source Project on Open Hub: Languages Page — 2006.
- ↑ CodeIgniter/license.rst at develop · bcit-ci/CodeIgniter · GitHub
- ↑ 1 2 CodeIgniter vs. CakePHP . Архивировано из оригинала 29 февраля 2012 года. (рус.)
- ↑ 1 2 CodeIgniter vs Symfony . Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ CodeIgniter Video Tutorials . Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ CodeIgniter Video Tutorials By Community . Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ CodeIgniter From Scratch . Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ Easy Development With CodeIgniter . Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ Benchmark update: Cake vs. CodeIgniter vs. Kohana . Pr0digy.com (3 сентября 2008). Дата обращения: 24 июля 2009. Архивировано из оригинала 29 февраля 2012 года. (англ.)
- ↑ TinyButStrong Template Engine Архивировано 10 марта 2010 года.
- ↑ FUEL — A simple, flexible, community driven PHP5.3 framework . Дата обращения: 12 июля 2011. Архивировано 11 июля 2011 года.
- ↑ codelighter Архивная копия от 17 июня 2009 на Wayback Machine Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
- ↑ FUEL CMS: A Rapid Development CodeIgniter CMS . Дата обращения: 12 июля 2011. Архивировано 9 июля 2011 года.
- ↑ Официальный сайт Maxsite CMS. Бесплатная система управления сайтом. Дата обращения: 6 мая 2022. Архивировано 16 апреля 2014 года.
- ↑ cogear — система управления сайтами, бесплатная cms для социальной сети Архивировано 25 апреля 2016 года.