2010-02-03 7 views
11

Attualmente sto imparando il framework yii e ho letto la loro documentazione.componenti yii: eventi e comportamenti?

ma ancora non capisco i componenti. cosa sono questi. parlano di eventi e comportamenti dei componenti.

qualcuno potrebbe spiegare questi termini per me e fornirmi veri esempi di app di cosa potrebbe essere un componente, i suoi eventi e comportamenti?

sarebbe utile!

risposta

5

Un CComponent di per sé non fa molto. È molto simile a un QObject in Qt. Un CComponent può generare eventi e può delegare eventi (tramite attachEventHandler()).

Per quanto riguarda i comportamenti, il manuale dice:

Le modalità di comportamento possono essere invocati come se appartengono alla componente . Più comportamenti possono essere collegati allo stesso componente.

Per allegare un comportamento a un componente, call attachBehavior; e per scollegare il comportamento dal componente, chiamare detachBehavior.

Un comportamento può essere temporaneamente abilitato o disattivato chiamando enableBehavior o disableBehavior, rispettivamente. Quando disabilitato, i metodi di comportamento non possono essere invocati tramite il componente .

partire dalla versione 1.1.0, le proprietà di un comportamento (sia suoi variabili membro pubblico o sue proprietà definite tramite getter e/o setter) si può accedere attraverso il componente cui è collegato.

che vi dà la possibilità di simulare un meccanismo signals and slots, o il strategy pattern (abilitando o disabilitando i comportamenti).

La maggior parte delle classi in Yii ha CComponent come classe base.

Come utente, vedrete i vantaggi che forniscono attraverso i meccanismi sopra menzionati quando creerete i vostri componenti (sotto protetto/componenti /).

Si può trovare un buon punto di partenza per l'implementazione di componenti qui: http://www.yiiframework.com/doc/guide/basics.component

4

In Yii, un'applicazione funziona attraverso l'interazione di diversi oggetti , Questi oggetti possono essere semplicemente considerati "componenti" o "blocchi" dell'applicazione. Un componente è semplicemente un oggetto che è stato scritto per eseguire o facilitare una particolare attività in un'applicazione Yii. Se guardi "Flusso di lavoro tipico di un'applicazione Yii" su [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]

ti rendi conto che a parte dalla vista e layout (che sono considerati script) e indice.php, tutto ciò che interagisce con gli altri è un componente. Compiono tutti compiti diversi quando viene eseguita l'applicazione.

Quasi tutto in Yii è un componente (o derivato dalla classe CComponent).

Più in particolare,

componente I implementa il protocollo di definizione, utilizzando le proprietà e gli eventi "

Eventi:. Eventi consentono di eseguire una sequenza (più di uno) di azioni quando qualcosa di specifico accade all'interno di un componente, definisci un evento e allega un numero di funzioni (azioni) a quell'evento. Ora, ogni volta che quell'evento viene generato all'interno del componente, vengono eseguite tutte le funzioni associate a quell'evento. , questi sono in qualche modo simile al concetto di hook in Wordpress.

L'applicazione specifica di eventi in un componente è definita da Yii come

È utile quando si vuole interrompere il normale flusso applicativo senza estendere classi base.

Comportamenti: comportamenti sono semplicemente il modo di Yii di fornire con l'ereditarietà multipla, che non è supportato da PHP5 mentre eliminando con la funzione-stesso multipla problema nome di ereditarietà multipla. Se si desidera ereditare proprietà e metodi dalla classe A e B. Estendere la classe A e quindi associare la classe B come comportamento, e quindi è possibile utilizzare anche tutti i metodi della classe B. Ora, se sia A sia B contenevano una funzione chiamata 'usefulfunction()', tutte le chiamate a questa funzione porteranno all'esecuzione della 'funzione utile' solo dalla classe A. Se entrambe le classi A e B sono state aggiunte come comportamenti a una classe, la chiamata 'usefulfunction' risulterebbe nell'esecuzione del metodo dal comportamento che era stato allegato per primo.

P.S. (Non sono un esperto, quindi per favore correggimi se sbaglio dovunque.)