Расширение Yii
Расширение функциональности Yii — стандартная практика в процессе разработки. Например, при написании нового контроллера вам необходимо расширить Yii путём наследования его класса CController; при написании виджета — класса CWidget или класса уже существующего виджета. Если созданный код предназначен для повторного его использования сторонними разработчиками, то мы называем его расширением (extension).
Как правило, каждое расширение решает только одну задачу. Используя терминологию, принятую в Yii, расширения можно классифицировать следующим образом:
- компонент приложения;
- поведение;
- виджет;
- контроллер;
- действие;
- фильтр;
- команда консоли;
- валидатор: компонент, наследующий класс CValidator;
- помощник: класс, содержащий только статические методы, похожие на глобальные функции, использующие имя класса в качестве пространства имён;
- модуль: самодостаточная программная единица, состоящая из моделей, действий, контроллеров и вспомогательных компонентов. Модуль во многом схож с приложением. Основное отличие состоит в том, что модули входят в состав приложения. Например, у нас может быть модуль, предоставляющий возможность управления пользователями.
Впрочем, расширение может и не соответствовать ни одной из перечисленных категорий. Yii изначально был спроектирован таким образом, что практически любую его часть можно изменить и дополнить для любых нужд.