Фреймворки во многом облегчают разработку программного проекта за счет готового набора компонентов и библиотек. Очень важным для фреймворка является не навязывание архитектуры. Диктовать архитектуру приложения должен разработчик, а не фреймворк. Если же фреймворк принуждает разработчика к определенной архитектуре, то при разработке нестандартного веб-приложения можно упереться в накладываемые ограничения. Однако выход за рамки фреймворка поощряет неопытных или начинающих разработчиков к плохо написанному программному коду.
CodeIgniter всегда позволял выходить за рамки и строить гибкие веб-приложения. За счет множества библиотек на CodeIgniter без труда можно построить полноценное веб-приложение. Однако отсутствие некоторых компонентов, которые имеются в других фреймворках, было отнесено некоторыми разработчиками к минусам CodeIgniter. Появилось ошибочное мнение, что без этих компонентов не построить полноценного веб-приложения и много программного кода придется писать самому. Но ведь фреймворк должен давать лишь основу, опираясь на которую разработчик должен сам строить приложение.
На официальном форуме CodeIgniter участник сообщества предложил идею о создании CI Community Apps – официальных аддонов для создания приложений на основе фреймворка CodeIgniter. Очень часто бывает, когда начинается новый проект, постоянно приходится использовать некоторые общие и основные компоненты: авторизация, регистрация, управление пользователями и т.д. Идеология CodeIgniter не позволяет включить все эти компоненты прямо в фреймворк. В то время как почти во всех остальных фреймворках подобные вещи имеются из коробки, в CodeIgniter этого нет. Именно поэтому приходится применять различного рода сторонние библиотеки. Но, думаю, что большинство разработчиков, которые писали или до сих пор пишут приложения на CodeIgniter, имеют собственный набор библиотек для разработки. CI Apps позволит в корне решить данную проблему.
Возможные варианты CI Community Apps
Примеры аддонов приложений
- CI Users приложение — основа для системы авторизации, регистрации, настройка личного профиля, управление пользователями. Требует CI Admin для управления.
- CI Admin приложение — базовая панель управления. Может требовать CI Users для аутентификации пользователя.
- CI Posts – управление материалами (постами). Требует CI Admin для управления.
- CI Products – управления товарами. Требует CI Admin для управления.
- CI Installer – установщик пакета готовых инструментов для настройки приложения CI.
Пример готовых приложений
- CI Blog (небольшое приложение) — индивидуальные Frontend + CI Admin + CI Users + CI Posts + CI Installer (почти готовый WordPress).
- CI Products Listing (среднее приложение) — индивидуальные Frontend + CI Admin + CI Products + CI Installer (могут быть добавлены + CI Users).
- CI Shop (большое приложение) — индивидуальные Frontend + CI Admin + CI Products + CI Users + CI Installer и т.д.
Если в сообществе CodeIgniter найдутся единомышленники по разработке и внедрению CI Apps: то это будет очень неплохо.
Суть идеи предложенной пользователем sv3tli0, заключается в том, чтобы CI Apps были утверждены составом CodeIgniter в качестве официальных приложений сообщества. Развитием приложений занимались бы участники сообщества, не отвлекая при этом разработчиков ядра фреймворка. Думаю, что это правильный шаг. Если подобного рода вещи не хотят быть внесены в сам CodeIgniter, то можно сделать их отдельно.
Таким образом, участники сообщества могли бы внести свой вклад в CodeIgniter приложения, а веб-разработчики, которые начинают работу над новым проектом, будут иметь много вариантов начать проект не только с нуля.
Ссылки по теме:
CodeIgniter Wikipedia: ru.wikipedia.org/wiki/CodeIgniter
Официальный сайт CodeIgniter: www.codeigniter.com
Официальный форум CodeIgniter: forum.codeigniter.com
Тема на форуме CodeIgniter: CI Community Startup and Addon Apps
Приложения это конечно все хорошо, но codeigniter должен что-то особенное делать, чтобы разработчики начали его использовать. Иначе смысла никакого в нем нет, пакеты устаревшие и прочее уступает другим фреймворкам.