Когда использовать компоненты и когда использовать расширения в Yii?

Я немного запутался в назначении папок компонентов и расширений в protected/

Просьба уточнить.


person oaziz    schedule 08.12.2011    source источник


Ответы (1)


Согласно моему небольшому опыту работы с Yii:

Компоненты — это классы, которые могут помочь вам написать бизнес-логику на основе ваших моделей. Вы определенно не хотите кодировать всю свою работу в контроллерах, тогда вам нужен компонент для распространения вашего кода и вызова его в контроллере.

Расширения подобны библиотекам, которые в основном не зависят от ваших моделей и, следовательно, могут повторно использоваться где угодно в текущих или последующих проектах. Например: расширение электронной почты или класс, который отправляет твиты на ваш аккаунт в Твиттере.

Это может отличаться для других кодеров/пользователей.

person Arfeen    schedule 08.12.2011
comment
Арфин, отличное объяснение, теперь я получаю расширения. А как насчет компонентов? Можете ли вы привести пример, когда что-то будет идти здесь, а не прямо в классе модели? - person John Zumbrum; 11.06.2012
comment
Это моя обычная практика, предположим, вам нужно управлять пользователями, поэтому я всегда создаю компонент, в котором функции будут управлять пользователями, например вход в систему, выход из системы, новый пользователь, изменение статуса и все функции, связанные с задачами пользователя/пользователей. И определенно все эти функции будут использовать пользовательскую модель. - person Arfeen; 12.06.2012
comment
Хорошо ли иметь компонент, зависящий от модели? Это мое сомнение. - person JorgeeFG; 16.05.2013
comment
@ Хорхе Это зависит исключительно от вашего дизайна. У вас может быть такой компонент. У вас также есть возможность написать методы в желаемой модели. Опять же зависит. - person Arfeen; 17.05.2013