CakePOWER :: Plugins

CakePOWER estende il concetto di plugin creato da CakePHP. Un plugin CakePOWER può integrarsi nell'applicazione, distribuire funzionalità, alterare il comportamento di altri plugins ed essere a sua volta modificato mediante la configurazione o la gestione degli eventi.

Un plugin può essere composto di controllers, modelli, viste e risorse ad esso dedicate e condivisibili con il resto dell'applicazione secondo le varie modalità previste da CakePHP. Plugins di questo tipo funzioneranno esattamente come previsto dal framework.

La struttura di un plugin come definita in CakePHP può essere però estesa con i seguenti files:

  • /config/power.php
  • /config/bootstrap.php
  • /config/hooks.php
  • /config/routes.php
  • /config/activate.php
  • pluginName_app_config.php

Questo elenco rappresenta gli strumenti che ogni plugin può utilizzare per integrarsi nel sistema e, sopratutto, con altri plugins al fine di erogare funzionalità “drop-in” direttamente utilizzabili anche da utenti entry-level.

Ricerca e inizializzazione dei plugins

Durante il bootstrapping di CakePOWER viene lanciata una ricerca nei vari repository di plugins al fine di stilare un elenco dei plugin coinvolti nella richiesta in corso.

Tale elenco viene salvato nella DAC alla chiave “app.plugins” e contiene informazioni utili all'integrazione degli stessi.

app.plugins = [
    pluginName = [
        name = pluginName
        path = /users/user/sites/www.yoursite.it/app/plugins/
    ]
]

Il codice qui sopra è un esempio di configurazione dei plugins utilizzati da CakePOWER. E' possibile forzare la creazione automatica di questo elenco definendo l'array completo dei plugins nella variabile $plugin in /app/config/bootstrap.php prima del caricamento di CakePOWER.

Il sistema utilizza questo elenco per la ricerca e inclusione dei files di integrazione (dettagliati in seguito in questa pagina). L'ordine seguito è l'ordine in cui i plugins sono stati trovati. E' pertanto consigliato definire un elenco esplicito nel bootstrap dell'applicazione quando si porta l'applicazione in produzione.

Approfondimenti sui files di integrazione

config/power.php

Questo file è destinato a contenere informazioni di configurazione statica del sistema. Viene eseguito durante il bootstrapping di CakePOWER prima dell'identificazione della lingua richiesta. E' stato ideato per poter gestire, a livello di plugin, le eccezioni nel sistema FakeURL a dimensione fissa.

config/bootstrap.php

Questo file è destinato a contenere informazioni generiche di boostrapping relative al plugin. Questo file viene eseguito dopo la rilevazione della costante RQL da parte di CakePOWER.

config/hooks.php

Questo file è dedicato alla gestione degli hooks di integrazione con il sistema.

config/routes.php

Questo file è dedicato all'estensione delle regole di routing dell'applicazione e consente al plugin di utilizzare urls personalizzati.

E' importante controllare eventuali conflitti di utilizzo degli url nella documentazione dei plugins che si intende utilizzare.

config/activate.php

Questo file è destinato a contenere integrazioni “hooks” con l'applicazione ma viene eseguito durante l'inizializzazione dell'applicazione (beforeFilter) e solamente per i plugins elencati nella DAC “app.activePlugins”.

pluginName_app_config.php

Questo file è riservato all'estensione della configurazione DAC.

 
/home/juniorcm/public_html/wiki/data/pages/cakepower/plugins.txt · Ultima modifica: 26/08/2009 12:37 da peg
 
Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è sotto la seguente licenza:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki