Eventos

Buenas, quisiera realizar una consulta, estoy leyendo la documentacion y no me termina de cerrar el tema de los eventos, pongo un ejemplo funcional que logre, pero sigo sin entender bien la utilidad de los mismos.

Tengo un controlador con el siguiente codigo:


<?php


class EjemploController extends Controller

{

	public function actionIndex()

	{

           

                $objComponent = new Ejemplo();

                $objComponent->onClicked = array($this, 'handlerEjemplo');

                print_r($objComponent);


                $objComponent->lanzar();

		//$this->render('index');

	}


        public function handlerEjemplo($event) {


        }


}

Luego tengo creado un componente con el siguiente codigo:


<?php


class Ejemplo extends CComponent {


    public function init() {}


    public function onClicked($event) {

        $this->raiseEvent('onClicked', $event);

    }


    public function lanzar() {


        $this->onClicked(new CEvent($this));


    }


}

En resumen por lo que entiendo pasa lo siguiente:

1ro. en el action de un controlar, instancio el componente.

2do. le asigno el manejador de evento al evento.

3ro. Lanzo un metodo del componente llamado "lanzar" que dispara el evento.

Hola!!!

Para que los quieres utilizar… Depende de que forma los quieres usar que es lo que se debe realizar. Por ejemplo, tenés eventos en los AR (ActiveRecords) que manejan el beforeUpdate, afterUpdate, etc. En el controlador, tenés un beforeInit, init, etc

Si me decís un poco más te cuento como y para que sirver.

Saludos!

muchas gracias por tu respuesta. Basicamente estoy analizando si me sirve el framework para el fin que necesito y estaba intentando entender el tema de los eventos.

Voy a necesitar crear una serie de componentes individuales, estilo plugins, con eventos que voy a necesitar lanzar de los mismos.

ah, ok… Y el proyecto es muy grande??

Saludos,

y se podria decir que si.