2010-02-03 2 views
11

В настоящее время я изучаю структуру yii и прочитал их документацию.yii компоненты: события и поведение?

, но я до сих пор не понимаю компонентов. что это. они рассказывают о событиях и поведении компонентов.

может кто-нибудь объяснить эти условия для меня и дать мне реальные примеры приложений того, какой компонент, его события и поведение могут быть?

было бы полезно!

ответ

5

AКомпонент сам по себе не делает много. Это очень похоже на QObject в Qt. CComponent может создавать события и может иметь делегатов для событий (через attachEventHandler()).

Что касается поведения, руководство говорит:

Метода поведения может быть вызывается, как будто они принадлежат к компоненте. Множественное поведение может быть , прикрепленное к тому же компоненту.

Чтобы приложить поведение к компоненту, call attachBehavior; и отсоединить поведение от компонента, вызовите detachBehavior.

Поведение может быть временно активировано или отключено путем вызова enableBehavior или disableBehavior, соответственно. Когда отключен, методы поведения не могут вызывать через компонент.

Начиная с версии 1.1.0, в свойствах поведения (либо в его переменные члены общественных или его свойства, определенные с помощью геттера и/или инкубационных) могут быть доступны через компонента он присоединен.

Который дает возможность имитировать signals and slots механизм, или strategy pattern (путем включения или отключения поведения).

Большинство классов в Yii имеют CComponent в качестве базового класса.

В качестве пользователя вы увидите преимущества, предоставляемые этими механизмами, когда вы создадите свои собственные компоненты (под защитой/компоненты /).

Вы можете найти хорошую отправную точку для реализации компонентов здесь: http://www.yiiframework.com/doc/guide/basics.component

4

В 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. (Я не эксперт. Поэтому, пожалуйста, поправьте меня, если я где-то не прав.)

Смежные вопросы