2010-02-03 7 views
11

Actualmente estoy aprendiendo yii framework y he leído su documentación.yii components: eventos y comportamientos?

pero todavía no entiendo los componentes. que son estos. hablan de eventos componentes y comportamientos.

¿alguien podría explicarme estos términos y darme ejemplos de aplicaciones reales de lo que un componente, sus eventos y comportamientos podrían ser?

sería útil.

Respuesta

5

Un CComponent en sí mismo no hace mucho. Es muy parecido a un QObject en Qt. Un CComponent puede generar eventos y puede tener delegados en eventos (a través de attachEventHandler()).

En cuanto a los comportamientos, el manual dice:

Los métodos de la conducta pueden ser invocadas como si pertenecen al componente . Múltiples comportamientos pueden ser unidos al mismo componente.

Para asociar un comportamiento a un componente, llamada attachBehavior; y para separar el comportamiento del componente, llame al detachBehavior.

Un comportamiento se puede habilitar temporalmente o deshabilitado llamando a enableBehavior o disableBehavior, respectivamente. Cuando está deshabilitado, los métodos de comportamiento no pueden invocarse a través del componente .

partir de la versión 1.1.0, las propiedades de un comportamiento (ya sean sus variables miembro públicas o sus propiedades definidas a través de captadores y/o emisores de ) se puede acceder a través del componente que se adjunta a.

que le da la posibilidad de simular un mecanismo signals and slots, o la strategy pattern (activando y desactivando los comportamientos).

La mayoría de las clases en Yii tienen CComponent como clase base.

Como usuario, verá los beneficios que proporcionan a través de los mecanismos mencionados anteriormente cuando cree sus propios componentes (en protected/components /).

Usted puede encontrar un buen punto de partida para la implementación de los componentes aquí: http://www.yiiframework.com/doc/guide/basics.component

4

En Yu, una aplicación funciona a través de la interacción de diferentes objetos , Estos objetos se pueden considerar simplemente como "componentes" o "bloques de construcción" de la aplicación. Un componente es simplemente un objeto que ha estado escribiendo para realizar o facilitar una tarea particular en una aplicación Yii. Si tiene en cuenta "Flujo de trabajo típico de una aplicación Yii" en [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]

, se dará cuenta de que aparte desde vista y diseños (que se consideran scripts) e índice.php, todo lo que interactúa con los demás es un componente. Todos realizan diferentes tareas cuando se ejecuta la aplicación.

Casi todo en Yii es un componente (o derivado de la clase CComponent).

Más específicamente,

CCable implementa el protocolo de definir, utilizando las propiedades y eventos "

Eventos:. Eventos permiten llevar a cabo una secuencia (más de una) de las acciones cuando sucede algo específico dentro de un componente. Usted define un evento y adjunta una cantidad de funciones (acciones) a ese evento. Ahora, cada vez que se genera un evento dentro del componente, se ejecutan todas las funciones asociadas a ese evento. , estos son un tanto similar al concepto de ganchos en Wordpress.

La aplicación específica de eventos en un componente se define por Yii como

Es útil cuando se desea interrumpir el flujo de aplicación normal sin extender las clases base.

Comportamientos: Los comportamientos son simplemente la manera de proporcionarle la herencia múltiple, que no es compatible con PHP5, mientras que la supresión de múltiples funciones problema del nombre de la misma herencia múltiple de Yii. Si desea heredar propiedades y métodos de las Clases A y B. Extiende la clase A y luego adjunta la clase B como su comportamiento, y luego también puede usar todos los métodos de la clase B. Ahora, si tanto A como B contienen una función llamada 'función útil()', todas las llamadas a esta función darán como resultado la 'función útil' de la clase A solamente. Si ambas clases A y B se agregaron como comportamientos a una clase, entonces la llamada 'función útil' resultaría en la ejecución del método a partir del comportamiento que se adjuntó primero.

P.S. (No soy un experto. Así que por favor corrígeme si estoy equivocado en cualquier parte).