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  готовые системы управления содержимым, а те, в свою очередь, служат основой для создания полноценных… …   Википедия


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

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