CodeIgniter: Flussi di funzionamento "Router"

11 Oct 2019 | M.A.D.R.

Quello che uno sviluppatore, abituato a interagire con i files php, deve capire la centralità del file index.php, ossia il cuore di un progetto Framework, ed in questo caso Codeigniter router.

Non esistono altre pagine all’infuori di index.php nella root principale, si dovranno utilizzare solo ed esclusivamente i controller per generare dinamicamente delle rotte utili ai nostri scopi.

Le rotte appunti sono il vero cuore di un'applicazione di successo con una gestione più o meno avanzata delle stesse...

Possiamo immaginare che ad ogni richiesta dovremmo semplicemente richiamare un controllore che effettuerà delle operazioni più o meno semplici.

Il vero punto di forza di CodeIgniter?

L'autodiscover di controller/metodo/parametri....

Ossia, immaginata una url di questo tipo: https://sito.ext/welcome/home/ciao, in Codeigniter si trasforma in:

  1. Utilizzo il controller Welcome.php
  2. Cerco il metodo Home
  3. Passo il parametro CIAO

Il semplice esempio è un metodo di questo tipo:

public function home($p=''){}

Quasi dimenticavo.... Per creare strutture di navigazione base nel nostro Codeigniter Router NON DOBBIAMO SCRIVERE NULLA SUL ROUTER, in quanto viene automaticamente gestito... Fico NO!

Quali sono i benefici reali?

Partendo dal fatto che utilizzare un framework velocizza lo sviluppo, sicuramente incontreremo meno problemi/errori nella stesura del nostro codice, basti pensare alla solo connessione con il Database ed agli errori più comuni che si possono incontrare, tra cui l'utilizzo dei DOUBLEQUOTE...

Un framework serve a questo, ad aiutare non a fare per noi.... Si ma non deviamo, stiamo parlando del router....

Un piccolo esempio sulla gestione di Codeigniter Router (anche se minimale) è il seguente:

$route['quello_che_vogliamo']='controller/metodo';
//router con parametri
//ogni parametro è da passare in modo numerico anche se di tipo string
$route['quello_che_vogliamo/(:any)/(:num)']='controller/metodo/$1/$2'
//Qui invece abbiamo definito che qualsiasi rotta debba arrivare a chiamare
//Controller ed eseguire il Metodo -> metodo
$my_temp='(:any)';
for($i=0;$i<10;$i++){
    $route[$my_temp]='controller/metodo';
    $my_temp.='/(:any)';
}

L'immagine sotto è una piccola sintesi di quanto detto.

Il flusso di Codeigniter Router sarà:

  1. Client accede alla nostra applicazione
    1. Il router (dispatcher) chiama il nostro controller per la richiesta
      1. Controller effettua la funzione di Poliziotto e richiede i dati al model
      2. Controller passa i dati ad una o più viste
    2. La view elabora la richiesta
  2. Viene effettuato l'output della richiesta stampando a video del Client il risultato

NB: Codeigniter ha un solo vincolo: I controller non possono richiamare altri controller.

Cosa significa questo?

Semplice, dobbiamo cercare di sfruttare al massimo la logica per la gestione delle richieste garantendo una granulosità molto elevata della nostra applicazione.

Server utilizzare questo stile?

Certo, magari non sin da subito, ma con il passere del tempo si avranno progetti molti più complessi e nello stesso tempo facili da gestire...

Una breve infarinata:

  1. Controller
  2. Model
  3. View

Codeigniter VS Laravel: chi vince la sfida?

11 Oct 2019 | M.A.D.R.

Oggi l'evoluzione dei linguaggi sono sempre più orientate verso la&nbsp;semplificazione del codice, l’ottimizzazione delle funzionalità e la velocità di esecuzione. Codeigniter il nonno di tutti i framework, riesce ancora a tener testa al gio...

Codeigniter Migration: Versioning Database

11 Oct 2019 | M.A.D.R.

Per “migration” s'intende le gestione delle varie versioni di un database. Grazie al concetto di migration possiamo effettuare tutte le operazioni sul database che abitualmente effetuiamo con strumenti come&nbsp;phpMyAdmin,&nbsp;Toad,&nbsp;MySQL...

Codeigniter CLI: Eseguiamo lavori da linea di comando.

11 Oct 2019 | M.A.D.R.

Come tutti sapranno un framework che si rispetti mette a disposizione la CLI (command line interface), la quale permette di richiamare comandi più o meno complessi. A cosa servono? Per semplicità soffermiamoci solo ad alcuni principali utili...

Codeigniter: Estendiamo il framework con gli HOOKS

11 Oct 2019 | M.A.D.R.

Spesso i dev hanno necessità di modificare il comportamento ed il flusso dell'applicazione, codeigniter mette a disposizione gli HOOKS. Lavorare con un framework, anche se molto semplice, spesso induce ad errori comuni e poco sicuri, basti pensa...

Codeigniter: Profilazione dell'applicazione

11 Oct 2019 | M.A.D.R.

Seguendo l'articolo del Banchmark, per completare le operazioni di performance del nostro codice, Codeigniter permette la creazione di una profilazione dettagliata dell'esecuzione del nostro codice. La classe Profiler visualizzerà i risultati de...

CodeIgniter: Analizziamo le performance del nostro codice

11 Oct 2019 | M.A.D.R.

Ogni programmatore ad un certo punto dello sviluppo del codice, ha necessità di analizzare le performance della propria applicazione/funzione/metodo, infatti CodeIgniter ha una classe di gestione Benchmark sempre attiva, che consente di calcolare ...

Codeigniter: Template Engine o Template Parser

11 Oct 2019 | M.A.D.R.

Salve a tutti, dopo aver commentato la funzione dei controller e dei model non resta che parlare delle view, o come meglio definiti Template Engine o Template Parser. Codeigniter non ha un vero e proprio Template Engine, ma sfrutta una classe nat...

Codeigniter: Interazione con i database

11 Oct 2019 | M.A.D.R.

Continuiamo questa piccola avventura: CodeIgniter può interagire con i database attraverso un model (ma non è obbligatorio) o attraverso un controller (altamente sconsigliato). Cosa significa interagire con un database? Possiamo recuperare ...

CodeIgniter: Flussi di funzionamento "Router"

11 Oct 2019 | M.A.D.R.

Quello che uno sviluppatore, abituato a interagire con i files php, deve capire la centralità del file index.php, ossia il cuore di un progetto Framework, ed in questo caso Codeigniter router. Non esistono altre pagine all’infuori di index.ph...

Installazione CodeIgniter: prime impressioni

11 Oct 2019 | M.A.D.R.

Abbiamo già citato nell'articolo precedente alcune caratteristiche di questo Framework CodeIgniter. Piccola premessa obbligata... Oggi passeremo al setaccio la procedura d'installazione dello stesso e cercheremo di orientarci nella struttura ...

CodeIgniter - Un framework di tutto rispetto

11 Oct 2019 | M.A.D.R.

Arriva un momento, nel percorso lavorativo di un programmatore Php, nel quale si avverte la mancanza di un framework che possa semplificare la gestione di flussi più o meno complessi. I così detti framework contengono metodi e funzioni in rispo...

Soluzioni complete per ogni esigenza