- CodeIgniter
-
CodeIgniter Тип Программный каркас для создания веб-приложений
Разработчик EllisLab, Inc.
Операционная система Последняя версия Лицензия Сайт CodeIgniter — популярный MVC фреймворк с открытым исходным кодом, написанный на языке программирования PHP, для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab (англ.)русск., а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).
Содержание
История
Первый публичный релиз фреймворка произошел 28 февраля 2006 года. С выходом версии 2.0 28го января 2011 года CodeIgniter разделился на две ветки:
- CodeIgniter Core — ветка, которая делает акцент на стабильности, в связи с чем развивается медленно. Эта версия фреймворка является ядром популярной CMS ExpressionEngine 2.0.
- 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 подходит только новичкам
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 4 августа 2012.Влияние 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 (англ.) — Сайт фреймворка
- Официальный форум (англ.)
- Wiki-раздел (англ.)
- cidocs.ru (рус.) — Документация на русском языке для версии 2.1.0
- codeigniter.su (рус.) — Документация на русском языке для версии 2.0.0
- code-igniter.ru (рус.) — Документация на русском языке для версии 1.6.3
- Форум (рус.)
- Wiki-раздел (рус.)
- CodeLighter — Легковесный фреймворк использующий идеологию, синтаксис, модули и плагины Codeigniter’a
- www.codeigniter.org.ru (рус.) — Русскоязычный сайт фреймворка
- Sparks (англ.) — Сайт менеджера пакетов Sparks
- philsturgeon.co.uk (англ.) — Блог Фила Старджена (Phil Sturgeon) — одного из активных разработчиков фреймворка
Проекты, выполненные на CodeIgniter
- codeigniter.su/blog (рус.) — Пример блога на codeigniter с исходниками
- tranquillpoet.com (англ.) — IDE для поэтов, исходнии доступны на GitHub
- Maxsite CMS
- Cogear — блоговая CMS
- ImageCMS — CMS для интернет-магазинов и сайтов
- Project Bubble — система управления проектами (англ.)
- PyroCMS — универсальная модульная CMS (англ.)
- — музыкальный портал выполнен на codeigniter
См. также
Примечания
- ↑ 1 2 CodeIgniter vs. CakePHP. Архивировано из первоисточника 29 февраля 2012. (рус.)
- ↑ 1 2 3 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). Архивировано из первоисточника 29 февраля 2012. Проверено 24 июля 2009. (англ.)
- ↑ Известно несколько решений, см., к примеру Прикручиваем Smarty к CodeIgniter
- ↑ TinyButStrong Template Engine
- ↑ FUEL — A simple, flexible, community driven PHP5.3 framework
- ↑ codelighter Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
- ↑ FUEL CMS : A Rapid Development CodeIgniter CMS
- ↑ Официальный сайт Maxsite CMS. Бесплатная система управления сайтом.
- ↑ cogear — система управления сайтами, бесплатная cms для социальной сети
- ↑ PyroCMS — The modular open-source CodeIgniter CMS
PHP Люди Энди Гутманс • Расмус Лердорф • Зеев Сураски Ресурсы Zend Engine • Библиотеки • PEAR • Редакторы • Акселератор Реализации HipHop • Quercus • Project Zero • Phalanger • Parrot Фреймворки AppFlower • CakePHP • CodeIgniter • Drupal • FuelPHP • Horde • Joomla! • Lithium • Midgard • MODx • Qcodo • Seagull • SilverStripe • Symfony • TYPO3 • Xaraya • Yii • Zend Framework • Zeta Components Тестирование PHPUnit • PHP Unit Testing Framework • SimpleTest ORM Propel • Doctrine IDE AppFlower • Eclipse PDT • PhpStorm • NetBeans • RadPHP • PHP DevelStudio • PHPEdit • Zend Studio Компилятор Phalanger Widget toolkit wxPHP • PHP-GTK • PHP-Qt • Категория Веб-фреймворки ASP.NET DotNetNuke • ASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap
Perl Catalyst • Interchange • Titanium • Maypole • HTML:Mason
PHP Python CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino
Прочие
языкиAlpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)
Категории:- Программное обеспечение по алфавиту
- Программное обеспечение с лицензией BSD
- Программное обеспечение с лицензией Apache Software License
- Свободные библиотеки программ
- Каркасы веб-приложений на PHP
Wikimedia Foundation. 2010.