Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Прикрепить поведение к компоненту, вызовите addichavior; И отсоединить поведение от компонента, позвоните детечбехавиону.

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

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

Что дает вам возможность имитировать сигналы и слоты механизм или Стратегическая структура (путем включения или отключения поведения).

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

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

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

Другие советы

В Yii приложение работает через взаимодействие различных объектов, эти объекты могут быть просто считаться «компонентами» или «строительными блоками» приложения. Компонент - это просто объект, который пишет для выполнения или облегчения определенной задачи в приложении Yii. Если вы посмотрите на «Типичный рабочий процесс приложения Yii» на [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1

Вы понимаете, что кроме точки зрения и макета (которые считаются сценариями) и index.php, все, что взаимодействует с другими, - это компонент. Все они выполняют разные задачи, когда приложение запущено.

Почти все в Yii - это компонент (или полученный из CCOMPonent Class).

Более конкретно,

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

События : События позволяют выполнять последовательность (более одного) действий, когда что-то конкретное происходит в компоненте. Вы определяете событие и прикрепите ряд функций (действий) к этому событию. Теперь всякий раз, когда это событие поднимается в компоненте, выполняется все функции, прикрепленные к этому событию. Согласно моему пониманию, они несколько похожи на концепцию крючков в WordPress.

Конкретное применение событий в компоненте определяется YII как

Это полезно, когда вы хотите прервать нормальный поток приложений без расширения базовых классов.

Поведение : Поведение - это просто способ предоставления вам множественным наследованием, который не поддерживается PHP5, исходя из нескольких функций - одинаковую проблему имени нескольких наследований. Если вы хотите наследовать свойства и методы от класса A и B. Вы продлите класс A, а затем прикрепите класс B в качестве его поведения, а затем вы можете использовать все методы класса B. Теперь, если оба A и B содержали функцию именованной «полезнойфункции ()», все вызовы на эту функцию приведут к выполнению «полезнойфункции» из класса. Если оба класса A и B были добавлены в качестве поведения в классе, то «полезный» вызов приведет к выполнению метода от поведения, который был прикреплен первым.

PS (я не эксперт. Так что, пожалуйста, поправьте меня, если я никуда не так.)

Возможно, эта дополнительная страница на их вики может обеспечить больше понимания:http://www.yiiframework.com/wiki/44/behaviors-events/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top