Yii Framework Forum: [Risolto] Problema Con Ereditarietà Dei Controller Dentro Ad Un Model - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Risolto] Problema Con Ereditarietà Dei Controller Dentro Ad Un Model Rate Topic: -----

#1 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 700
  • Joined: 03-October 12
  • Location:Ferrara

Posted 24 December 2012 - 10:32 AM

ho un modulo whmcs che contiene, a parte il DefaultController, altri due controller.

Ora ho pensato di creare un WhmcsController, dove inserire alcuni filtri e la index di default.

Ho modificato gli altri due controller in modo che estendano WhmcsController invece di Controller

Il problema è che accedendo ad uno qualsiasi di questi moduli ottengo

include(WhmcsController.php): failed to open stream: No such file or directory


Il nome del file è corretto, il nome della classe è corretto. Il file è leggibile ed è davvero presente nella cartella whmcs/controllers.

Costa sto sbagliando !?
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 24 December 2012 - 06:14 PM

Quali sono i moduli di cui parli?

Quote

Il problema è che accedendo ad uno qualsiasi di questi moduli ottengo

0

#3 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 700
  • Joined: 03-October 12
  • Location:Ferrara

Posted 25 December 2012 - 06:06 AM

Mi spiego meglio, nel frattempo colgo l'occasione per segnalare che ho risolto. La soluzione è fra poche righe.

Allora il modulo è questo

\protected\modules\whmcs\


li dentro c'è ovviamente la cartella controller
la cartella contiene
DefaultController
ClientController
CreditController


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
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 25 December 2012 - 12:17 PM

Come può un controller essere un componente?
0

#5 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 700
  • Joined: 03-October 12
  • Location:Ferrara

Posted 27 December 2012 - 06:51 AM

cartella protected/component/ c'è il Controller da cui ereditano tutti gli altri, giusto?

così avviene anche per protected/modules/component

tutto qui
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#6 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 28 December 2012 - 12:17 AM

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.
0

#7 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 700
  • Joined: 03-October 12
  • Location:Ferrara

Posted 29 December 2012 - 06:17 AM

per autocaricarlo, nel file del modulo bisogna impostarlo tra gli auto import (scusami se io invece uso parole tutte tranne che tecniche...)
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users