A questo punto, dato che client e credit hanno cose in comune, ho creato, sempre dentro a whmcs\controller, il file
WhmcsController
quindi ho modificato ClientController e CreditController perchè estendano WhmcsController (che a sua volta estende Controller).
Quando però eseguo, per esempio, l’azione
index.php?r=whmcs/client/index
ottengo l’errore
include(WhmcsController.php): failed to open stream: No such file or directory
Un collega geniale mi ha fatto notale che Controller dovrebbe esssere un componente, percui ho creto
whmc/components/
e ci ho spostato dentro WhmcsController
A questo punto ClientController e CreditController sono stati liberi di estendere WhmcsController, senza alcun import, ne alcun’altra configurazione aggiuntiva
Io chiamo controller solo quei files che si trovano dentro alla cartella protected/controllers. Quindi posso chiamare controller base, oppure componente, quel file che si chiama Controller.php e che si trova dentro alla cartella protected/components. Anzi, a dire il vero avrebbe più senso che quest’ultimo fosse una classe astratta. Mi piace essere pignolo su queste cose. Ma al di la della mia pignoleria (eccessiva e quasi fastidiosa alle volte XD) ho capito il problema. Anche se non mi è chiaro come mai quel file non fosse caricato di suo.