SottoController

Probabilmente sono l’unico a non saperlo e vi chiedo scusa, ma è il mio secondo post e la prima applicazione con yii… e insomma ecco qui la domanda:

è possibile creare dei sotto controlli?

nel senso: il mio gestionale ha una struttura a moduli. Voi direte: usa un modulo!

Giusto. Però il modulo va registrato nel main, e sinceramente non mi piace, visto che poi ci sarà la possibilità di caricare e gestire i moduli caricati.

Allora la mia idea era questa: creo un controller "Ombra" che in base a un GET/POST richiama dei sottocontroller, come faccio con Joomla


jimport('joomla.application.helper');

 $controllerName = JRequest::getCmd('cont', 'search');

require_once( JPATH_COMPONENT.DS.'controllers'.DS.$controllerName.'Controller.php' );

$controller_name=  ucfirst($controllerName). 'Controller';

$controller= new $controller_name();

$task=JRequest::getCmd('task');

if (!$task)$task='showAll';

$documento =& JFactory::getDocument();

$documento->addStyleSheet('components/com_city4bike/css/style.css');

$controller->controllerName=$controllerName;

$controller->execute( $task );

Il tutto per poter installare il pezzo "magazzino" che ha un MagazzioController e una cartella magazzino con n sottocontroller(DDT, Articoli, etc)?

Secondo voi come posso fare?

PS… E salve a tutti!

Scusami ma … tu hai già una soluzione, che è quella di scaricare un modulo e di aggiungere una riga al file di configurazione. E vuoi diventare matto a reinventarti la ruota?

Quello che stai cercando di fare tu non è Yii: ma joomla.

Cmq capisco benissimo la questione di dover mettere le mani al file di configurazione. Proprio oggi ho costruito un componente che consente di aggiungere o togliere pezzi al file di configurazione. Lo sto ancora mettendo a punto quindi non posso esserti di ulteriore aiuto in questo momento =(.

mmmmm

Probabilmente hai ragione, ma i model di un singolo modulo andrebbro importati anche in ogni altro modulo?

Mi spiego ché tendo a arzigogolare:

  • le tabelle (e i relativi model) sono universali.

  • Alcuni Moduli (a.e. config, admin e anagrafica) sono fissi e irremovibili.

  • Alcuni Moduli (a.e. GestioneMezzi) sono installabili piacimento.

Ovviamente i nuovi moduli usano, oltre alle loro tabelle, anche le tabelle generali (a.e. la tabella User) il cui model sta all’interno di un altro modulo.

Devo dire a Yii di importarsi tutti i model che ci sono nei moduli e poi fare affidamento al suo lazy-loading? o c’è una soluzione più performante?

Basta che i models si trovino nella cartella /protected/models/. Vengono caricati tutti automaticamente quando ce jne è il bisogno. Io fossi in te pacchettizzerei le funzionalità separandole da necessarie e opzionali.

Le funzionalità necessarie le lascerei dentro alla tua applicazione yii. Le altre, potrebbero essere inserite nei propri moduli, e magari utilizzate dall’applicazione se e quando serve. Con questo ragionamento, quindi, può aver senso costruirsi un proprio installer che fa si che il tuo software si scelga i pezzi (moduli) che più gli occorrono.