Kohana: organizzazione dei controller nelle subdirectory

controller_namingA differenza di quanto avviene in CodeIgniter, all’interno del quale possiamo tranquillamente organizzare i nostri controller in sottocartelle di application/controllers senza doverci preoccupare di alcunché, per quanto riguarda Kohana (la versione sulla quale sto lavorando è la 3.3.1) il discorso è ben diverso e dobbiamo prestare attenzione ad una serie di regole per non imbatterci in errori di visualizzazione.
Vediamo uno alla volta quali sono i passi da compiere per creare, organizzare e mappare correttamente i controller in Kohana:

1 – creiamo la sottocartella di application/Controller all’interno della quale andremo poi a realizzare il nostro file Controllo.php; prendiamo come esempio, guardando la figura, controllerOnly; il nome, a differenza di quanto avviene in CodeIgniter, non deve assolutamente contenere il carattere underscore (_) e a breve vedremo perché;

2 – creiamo il file Controllo.php all’interno della sottocartella controllerOnly prestando attenzione alla dichiarazione, che deve contenere il percorso completo dello stesso, come segue:

come si può notare il nome dichiarato all’interno della classe è Controller_controllerOnly_Controllo: il carattere underscore viene utilizzato come separatore delle cartelle del percorso di Controllo quindi, come accennavo prima, non sarebbe possibile chiamare la directory controller_only invece di controllerOnly, perché il framework interpreterebbe controller e only come due cartelle separate e l’applicazione andrebbe in errore non riuscendo ad individuare il percorso corretto del nostro controller;

3 – fatto ciò dobbiamo andare a mappare il controller all’interno del file application/bootstrap.php tramite il metodo Route::set, prima della mappatura del controller di default Welcome.php, come possiamo vedere di seguito:

A questo punto andando all’indirizzo localhost/mia-applicazione/index.php/controllerOnly/Controllo/index riusciremo finalmente a visualizzare il frutto del nostro lavoro…

Lascia un commento

Your email address will not be published.