Ciao grazie dei consigli. Utilizzare il controller è una buona idea ma la soluzione del post in inglese mi sembra più elegante perchè usa il config nativo di php.
Ho usato quindi la sezione params di main.php
Ho poi suddiviso il main.php in più file per poter gestire il seguente scenario.
L’applicazione che stò pensando deve funzionare in due modalità : modalità web come sito tradizionale e modalità client in cui gira in un webserver locale e si sincronizza con la versione server installata su web (sincronizzazione ancora da concepire!) .
Mi serve praticamente permettere all’utente di avere i dati anche in locale usando una versione client del sito (prima delle funzionalità fornite esclusivamente a pagamento nell’installazione web) in modo da permetterli di mantenere una replica in locale o in caso di dati sensibili non mantenere su web certe cose (esempio fatture)
In più dovrebbe girare in modalità debug o produzione.
Ho frammentato il main.php dividendolo in tre file, uno comune a tutte le situazioni, uno che contiene le direttive per attivare il debug e il terzo che specifica i parametri per far girare l’applicazione in versione web o locale.
Praticamente si crea un main.php che con CMap::mergeArray unisce più sezioni di main.php.
return
CMap::mergeArray(
CMap::mergeArray(
require(dirname(__FILE__).'/main.php'),
require(dirname(__FILE__).'/main-dev.php')
),
require(dirname(__FILE__).'/web.php')
);
// main.php = parametri comuni a tutti
// main-dev.php = parametri debug
// web.php = parametri che definiscono la modalità queb inveche che locale
poi creo un’index per ogni scenario che richiama il main.php specifico dello scenario che deve girare (esempio debug in versione web come l’esempio sopracitato) variando la linea dell’index che richiama il main
$config=dirname(__FILE__).'/protected/config/web-dev.php';
questo index ad esempio lo chiamo index-web-dev.php
A questo punto sembra che il cerchio sia chiuso e tutto funzioni a dovere basta aprire l’url index-web-dev.php invece di index.php ma il problema è che quando nei controller faccio il redirect nella forma
$this->render('create', array('model' => $model,));
Yii redireziona su index.php invece su quello dello scenario voluto index-web-deb.php
Per ovviare al problema senza dover variare tutti i redirect in modo che puntino esplicitamente all’index voluto credo che dovrei ridefinire o il componente CWebApplication o CUrlManager per farli redirezionare sull’index appropriato magari leggendo la sez. params del config ma non ci sono riuscito perchè il redirect avviene ad un livello troppo basso delle classi Yii.
Mi sono arreso e per avviare i singoli scenari uso un solo index.php e cambio di volta in volta la linea che richiama il file main.php.
Non so se quello che scrivo sia utile a qualcuno, nel dubbio condivido… magari avete la soluzione per il redirect intelligente
ciao