La mia idea è realizzare un gestionale dove si possano aggiungere dei moduli oltre quelli base, diciamo sulla tipologia di Wp o Joomla.
Il problema è che Yii richiede la modifica del config per inserire il nome del modulo per l’installazione e questo sarebbe d’ostacolo a quegli utenti senza conoscenze informatiche.
Io salverei nel db, per caricare i moduli puoi usare la init della CApplication (con un behavior). La init arriva prima del’analisi dell’url, quindi fai in tempo.
Avevo scritto del codice, tempo fa, che risolveva questo problema. La mia logica era questa:
Se io ho un file come questo:
<?php return array();
vorrei avere la possibilità di aggiungere e togliere elementi a piacimento.
Supponiamo quindi di avere una sorta di interfaccia grafica in cui indicare il nome del modulo (userò un nome di fantasia) da installare: ‘pulcinella’. Il file qui sopra dovrà diventare
<?php return array(
'pulcinella'
);
Supponiamo, quindi, di avere un file di configurazione del tipo:
In effetti l’idea che avevo era questa, penso che generare un file modules.php o .conf sia più rapido che effettuare una chiamata al db per sapere quali i moduli da installare.
Ciò che non mi è chiaro è questo:
Yii inizializza l’app leggendo la configurazione, ma in che ordine?
Se per esempio so che sono già disponibili i models degli utenti potrei richiedere solo i moduli a cui l’utente ha accesso.
D’altra parte se il collegamento al db avviene dopo che io chiamo i models bloccherei il tutto.
Poi - sono confuso lo so - da quanto ho capito Yii carica all’occorrenza i file necessari, oltre quelli che vengono fissati nel config (aplication.modules.anagrafica.models.*), pertanto che la mia lista di moduli sia limitata solo a quelli diponibili per l’utente ha in realtà poca utilità.