CodeIgniter

CodeIgniter
CodeIgniter
Ci logo flame.jpg
Тип

Программный каркас для создания веб-приложений

Разработчик

EllisLab, Inc.

Операционная система

Кроссплатформенный

Последняя версия

2.1.3 (8 октября 2012 г.)

Лицензия

[1]

Сайт

www.codeigniter.com

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

Содержание

История

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

  1. CodeIgniter Core — ветка, которая делает акцент на стабильности, в связи с чем развивается медленно. Эта версия фреймворка является ядром популярной CMS ExpressionEngine 2.0.
  2. CodeIgniter Reactor — ветка, которую развивает сообщество. Эта ветка развивается быстро и содержит самые новые возможности.

Особенности

  • CodeIgniter отличает простота[1], которая достигается благодаря следующим факторам:
    • Качественная и полная документация с примерами, а также большое сообщество и Wiki[2][1]
    • Множество видео уроков, которые можно найти как на официальном сайте, так и на сторонних ресурсах[3][4][5][6]
    • Фреймворк дает свободу программисту, не создавая каких-либо структурных ограничений и конвенций
    • Программисту не требуется учиться пользоваться генераторами кода из командной строки
  • CodeIgniter работает практически на любом хостинговом плане, который имеет поддержку PHP версии 5.1 и выше
  • CodeIgniter считается одним из быстрых и не требовательных к ресурсам фреймворков[7][2]
  • Малый размер дистрибутива[2] (размер версии 2.1.1 составляет всего 2.2 Мб)
  • Фреймворк позволяет отказаться от моделей (несмотря на то, что это не приветсвуется и не является хорошей практикой)
  • Документация CodeIgniter пропагандирует «толстые» контроллеры и «тонкие» модели. Валидация и построение бизнес-логики происходят в основном в контроллере. Несмотря на это, фреймворк дает свободу разработчику, поэтому он может самостоятельно выбрать подход к разработке приложения

Возможности

  • Поддержка баз данных MySQL, PostgreSQL, MSSQL, SQLite, Oracle.
  • Поддержка псевдо-ActiveRecord, который по большей части повторяет синтаксис языка SQL
  • Легко расширяемая система за счет возможности использования сторонних и самописных библиотек, а также дополнения или переопределения существующих.
  • Поддержка как сегментированных ЧПУ, так и обычных URL-ов с передачей параметров.
  • Фреймворк содержит в себе множество необходимых библиотек, которые создают функционал для работы с файлами, отправки электронных писем, валидации форм, поддержки сессий, работы с изображениями и так далее.
  • Обладает возможностью кеширования на стороне сервера SQL-запросов и генерируемых html-страниц. С версии 2.0 для кеширования могут использоваться XCache или APC.
  • В 2011 году появился менеджер пакетов под названием Sparks, который позволяет легко установить сторонние библиотеки с помощью командной строки.
  • В 2011 году появилось дополнение, которое делает возможным поддержку миграций.
  • Поддержка модульности (HMVC) с помощью дополнений
  • Немотря на отсутствие ORM в стандартом пакете, существует возможность использования PHP ActiveRecord, Doctrine, Propel и некоторых других ORM после небольших изменений или дополнений в исходном коде фреймворка
  • По умолчанию CodeIgniter не использует шаблонизаторы, но есть возможность использовать его собственный или один из альтернативных шаблонизаторов (Smarty[8], TinyButStrong[9]).

Примеры кода

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();
  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 по умолчанию не поддерживают ORM.
  • Класс для работы с базами данных практически невозможно расширять и изменять из-за плохо продуманной архитектуры.
  • Несмоторя на то, что данный фреймворк используют многие профессиональные разработчики и веб-студии, многие считают, что CodeIgniter подходит только новичкам

Влияние CodeIgniter

CodeIgniter послужил базой для таких фреймворков, как Kohana и Rain Framework (англ.)русск., многие идеи CodeIgniter применены в фреймворках Fuel PHP[10] и CodeLighter[11].

Фреймворк Kohana изначально был ветвью CodeIgniter и был создан с целью использования всех возможностей PHP5 с сохранением простоты и высокой производительности CodeIgniter. Он отличался от CodeIgniter отсутствием поддержки PHP4 и наличием некоторых дополнительных библиотек (ORM, Auth и других). Если версии Kohana 2.x все еще чем-то были схожи с CodeIgniter, то современные версии (3.x) фактически не имеют с ним ничего общего, кроме истории.

На CodeIgniter основано множество CMS: Fuel CMS[12], MaxSite CMS[13], Cogear[14], PyroCMS[15] и другие.

Ссылки

  • codeigniter.com (англ.) — Сайт фреймворка
  • cidocs.ru (рус.) — Документация на русском языке для версии 2.1.0
  • codeigniter.su (рус.) — Документация на русском языке для версии 2.0.0
  • code-igniter.ru (рус.) — Документация на русском языке для версии 1.6.3
  • CodeLighter — Легковесный фреймворк использующий идеологию, синтаксис, модули и плагины Codeigniter’a
  • www.codeigniter.org.ru (рус.) — Русскоязычный сайт фреймворка
  • Sparks (англ.) — Сайт менеджера пакетов Sparks
  • philsturgeon.co.uk (англ.) — Блог Фила Старджена (Phil Sturgeon) — одного из активных разработчиков фреймворка

Проекты, выполненные на CodeIgniter

См. также

Примечания

  1. 1 2 CodeIgniter vs. CakePHP. Архивировано из первоисточника 29 февраля 2012. (рус.)
  2. 1 2 3 CodeIgniter vs Symfony. Архивировано из первоисточника 29 февраля 2012. (англ.)
  3. CodeIgniter Video Tutorials. Архивировано из первоисточника 29 февраля 2012. (англ.)
  4. CodeIgniter Video Tutorials By Community. Архивировано из первоисточника 29 февраля 2012. (англ.)
  5. CodeIgniter From Scratch. Архивировано из первоисточника 29 февраля 2012. (англ.)
  6. Easy Development With CodeIgniter. Архивировано из первоисточника 29 февраля 2012. (англ.)
  7. Benchmark update: Cake vs. CodeIgniter vs. Kohana. Pr0digy.com (3 сентября 2008). Архивировано из первоисточника 29 февраля 2012. Проверено 24 июля 2009. (англ.)
  8. Известно несколько решений, см., к примеру Прикручиваем Smarty к CodeIgniter
  9. TinyButStrong Template Engine
  10. FUEL — A simple, flexible, community driven PHP5.3 framework
  11. codelighter Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
  12. FUEL CMS : A Rapid Development CodeIgniter CMS
  13. Официальный сайт Maxsite CMS. Бесплатная система управления сайтом.
  14. cogear — система управления сайтами, бесплатная cms для социальной сети
  15. PyroCMS — The modular open-source CodeIgniter CMS

Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "CodeIgniter" в других словарях:

  • CodeIgniter — Développeur EllisLab, Inc. Dernière version …   Wikipédia en Français

  • CodeIgniter — Entwickler Ellislab Aktuelle Version 2.0.3 (20. August 2011) Betriebssystem …   Deutsch Wikipedia

  • CodeIgniter — Infobox Software name = CodeIgniter caption = developer = EllisLab, Inc. latest release version = [http://codeigniter.com/download.php 1.6.3] latest release date = release date|2008|06|26 latest preview version = latest preview date = operating… …   Wikipedia

  • EllisLab — EllisLab, Inc. Type Private Industry Software Programming Founded Los Angeles, CA (2001) Headquarters Bend, Oregon Key people Rick Ellis, Founder Leslie Camacho, CEO Derek Jones, President/CTO James Mathias, CCO …   Wikipedia

  • Kohana — Тип Программный каркас для создания веб приложений Разработчик Kohana Team[1] Написана на PHP Операционная сис …   Википедия

  • EllisLab — es una empresa localizada en Bend (Oregón, EEUU) que desarrolla aplicaciones software en lenguaje PHP.[1] La empresa es de propiedad privada y no tiene socios financieros de ningún tipo. EllisLab ha desarrollado las siguientes aplicaciones  …   Wikipedia Español

  • Kohana (Web Framework) — infobox Software name = Kohana caption = Kohana homepage on 2007 11 17. developer = Kohana Software Foundation [ [http://trac.kohanaphp.com/wiki/Developers Developers Kohana Trac ] ] latest release version = [http://kohanaphp.com/download.html… …   Wikipedia

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Список CMF — Это список CMF  каркасных систем для управления содержимым (в основном, содержимым сайтов). Как правило, на основе CMF создаются CMS  готовые системы управления содержимым, а те, в свою очередь, служат основой для создания полноценных… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»