Дизайн и архитектура ядра
Нашей целью при разработке CodeIgniter является максимум производительности, возможностей, и гибкости при минимальном размере дистрибутива.
Для достижения этой цели мы являемся приверженцами бенчмаркинга, рефакторинга и упрощения на каждом этапе проектирования, мы отбрасываем все, что не соответствует заявленной цели.
С технической точки зрения, CodeIgniter был создан для следующих целей:
- Динамическое Инстанцирование. В CodeIgniter компоненты загружаются только тогда, когда это действительно необходимо, а не повсеместно на глобальном уровне. Система работает на предположении, что для функционирования достаточно самого минимума используемых ресурсов, поэтому она очень легкая. Все необходимое может быть догружено на этот минимум уже в процессе вашей работы.
- Свободные связи. Чем меньше компоненты зависят друг от друга, тем более гибким становится приложение. Наша цель — сделать как можно меньше зависимостей.
- Узконаправленные компоненты. В CodeIgniter каждый класс и его функции в значительной степени автономны, за тем чтобы получить максимальную полезность.
CodeIgniter является динамично подгружающимся и минимальным количеством обязательных связей. Он стремится к простоте, гибкости и высокой производительности при малых объемах дистрибутива.