Domanda

Ho un modulo "admin" e lo voglio servire "controllori dinamici", vale a dire per fornire un comportamento di default per i controller, che in realtà non esistono ( "controller virtuali").

ho inventato un meccanismo di messaggistica leggero per la comunicazione tra i moduli allentato. Mi piacerebbe utilizzarlo in modo tale che, quando ad es.

?r=admin/users/index

è richiesto, si chiamerà il "controller virtuale" "UserController" di AdminModule, che, per impostazione predefinita, utilizzare questo meccanismo di messaggistica per segnalare al modulo vero e proprio "UsersModule" si può rispondere alla richiesta.

I pensato di simulare questo comportamento in AdminModule :: init (), ma a quel punto non ho modo di decidere se l'azione può essere elaborato da un controllore reale o no, o almeno io non so come farlo.

Questo è dovuto al modo in cui funziona Yii: bottom-up, il controllore è quella che rende la vista e il layout di applicazione (o il modulo di, se esiste), per esempio. Non credo che il modulo ha anche una parola da dire sulla gestione di un determinato controller + azione oppure no.

Per ricapitolare, sto cercando una sorta di CWebModule :: missingController ($ controllerId, $ ActionID), proprio come CController :: missingAction ($ ActionID), o una soluzione per simulare questo.

Questo sarebbe forse essere in CWebModule :: init () o da qualche parte dove posso trovare

  1. se il controller esiste realmente, nel qual caso è il suo lavoro gestirlo
  2. il $ ActionID e $ controllerID
  3. se esiste il modulo $ controllerID (non ho digitare sbagliato, in r = admin / utenti / index, "utenti" è il modulo vero e proprio, come specificato nella configurazione dell'applicazione).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top