Interested Article - CodeIgniter

CodeIgniter — популярный MVC фреймворк с открытым исходным кодом , написанный на языке программирования PHP , для разработки полноценных и приложений. Разработан компанией (англ.) , а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).

Старая версия CodeIgniter’а (CodeIgniter 2.x), как и более ранние версии, распространяются под проприетарной лицензией в стиле Apache / BSD , однако текущая ветвь CodeIgniter 4 перелицензирована под MIT .

История

Первый публичный релиз фреймворка произошёл 28 февраля 2006 года. С выходом версии 2.0 28-го января 2011 года CodeIgniter разделился на две ветки:

  1. CodeIgniter Core — ветка, которая делает акцент на стабильности, в связи с чем развивается медленно. Эта версия фреймворка является ядром популярной CMS ExpressionEngine 2.0.
  2. 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
  • (англ.)

См. также

Примечания

  1. . Дата обращения: 4 августа 2012. 31 июля 2012 года.
  2. — 2006.
  3. . Архивировано из 29 февраля 2012 года. (рус.)
  4. . Архивировано из 29 февраля 2012 года. (англ.)
  5. . Архивировано из 29 февраля 2012 года. (англ.)
  6. . Архивировано из 29 февраля 2012 года. (англ.)
  7. . Архивировано из 29 февраля 2012 года. (англ.)
  8. . Архивировано из 29 февраля 2012 года. (англ.)
  9. . Pr0digy.com (3 сентября 2008). Дата обращения: 24 июля 2009. Архивировано из 29 февраля 2012 года. (англ.)
  10. 10 марта 2010 года.
  11. . Дата обращения: 12 июля 2011. 11 июля 2011 года.
  12. от 17 июня 2009 на Wayback Machine Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
  13. . Дата обращения: 12 июля 2011. 9 июля 2011 года.
  14. Дата обращения: 6 мая 2022. 16 апреля 2014 года.
  15. 25 апреля 2016 года.
Источник —

Same as CodeIgniter