В Yii приложение работает через взаимодействие различных объектов , Этот объект можно просто считать «компонентами» или «строительными блоками» приложения. Компонент - это просто объект, который писал для выполнения или облегчения конкретной задачи в приложении Yii. Если вы посмотрите «Типичный рабочий процесс приложения Yii» на странице [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]
Вы поймете, что отдельно из вида и макетов (которые считаются скриптами) и индекса.php, все, что взаимодействует с другими, является компонентом. Все они выполняют разные задачи при запуске приложения.
Практически все в Yii является компонентом (или производным от класса CComponent).
Более конкретно,
CComponent реализует протокол определения, используя свойства и события «
События:. События позволяют выполнить последовательность (более одного) действий когда в компоненте происходит что-то конкретное, вы определяете событие и присоединяете к этому событию ряд функций (действий). Теперь, когда это событие возникает внутри компонента, все функции, связанные с этим событием, выполняются. , это несколько аналогично концепции крючков в Wordpress.
Конкретное применение событий в компоненте определяется Yii, как
Это полезно, когда вы хотите прервать нормальный поток приложения без расширения базовых классов.
Поведение: Поведения просто способ Yii о предоставлении вам множественное наследование, который не поддерживается PHP5, а покончив с несколькими функционально-одноименному проблемой множественного наследования. Если вы хотите наследовать свойства и методы из классов A и B. Вы расширяете класс A, а затем добавляете класс B в качестве его поведения, а затем можете использовать все методы класса B. Теперь, если оба A и B содержат функцию с именем «полезная функция()», все вызовы этой функции приведут к выполнению «полезной функции» только из класса A. Если оба класса A и B были добавлены как поведение для класса, тогда вызов «полезной функции» приведет к выполнению метода из поведения, которое было присоединено первым.
P.S. (Я не эксперт. Поэтому, пожалуйста, поправьте меня, если я где-то не прав.)