Certo é che quando si entra dentro a una disciplina che non si conosce non possiamo nemmeno sospettare quali potenzialità si celano dietro espressioni come MVC, librerie, controller, funzioni, programmazione ad oggetti etc. Abbiamo la fortuna di disporre di un insieme di strumenti gratuiti, scaricabili nel framework codiigniter all’ indirizzo https://codeigniter.com/download quindi perché non carpire il funzionamento di questa strana e inconoscibile macchina che non sappiamo ancora guidare? Naturalmente ci sono sempre i dati di mezzo, quelli non mancano mai nel quotidiano e quindi una connessione con un database da mettere in piedi. Sarà complicato con questo MVC potente e leggero implementare dei CRUD? Come dobbiamo districarci nel capire le dinamiche che si nascondono dentro questa camera oscura? L’informatica non va disgiunta dalle necessità richieste dal mondo reale, quindi la cosa migliore é iniziare con la pratica e risolvere delle questioni quotidiane! Problema di fondo del sottoscritto che sta familiarizzando con il genere western sul grande schermo e con registi intramontabili come Ford , Leone, Hawks e attori altrettanto signifgicativi nel genere come Wayne, Franco Nero o Clint Eastwood e tanti altri. Posso crearmi un database di riferimento da gestire con Codeigniter? Certo! Vediamo in pratica come materializzare il tutto! Naturalmente si deve avere una familiarità base con PHP e con espressioni come array, costanti, variabili, metodi post e metodi get nei form, sessioni e la scoraggiante OOP che allontana tanti potenziali programmatori dall’ uso frequente di PHP per tornare alle dinamiche del web design con framework più alla portata della propria comprensione come il noto vestito grafico bootstrap per esempio. Poi bisogna avere chiara quale cassetta degli attrezzi portare dietro durante il viaggio, con quale editor vuoi lavorare? Vuoi modificare il codice con Sublime o Atom o con Visual Studio Code? Poi c’è sempre la questione del database da far correre in locale che magari corre con XAMPP e phpadmin. Su questa fase possiamo sorvolare ma di fatto prima di dare scacco matto, come recita un famoso claim di http://www.farwebdesign.com, bisogna prima aver apparecchiato la tavola. Ok diciamo che abbiamo installato tutti gli strumenti che ci servono, facendo un particolare accenno anche a COMPOSER che é una sorta di direttore di orche3stra che gestisce e controlla le dipendenze nel nostro programma quando abbiamo necessità di installare pacchetti aggiuntivi (analogamente a quanto succede con NODE e il suo manager NPM!). A questo punto fatte queste dovute precisazioni siamo preparati per risolvere il nostro problema esistenziale: costruire uyn database dinamico sul cinema di genere wester per fissare le nostre preferenze in voto alla nostra collezione di capolavori preferiti! Ma quali motivazioni abbiamo a perdere tempo su questo software che ci dà la possibilità di creare programmi? MVC e OOP sono due risposte più che soddisfacenti, paradigmi usati in vari framework famosi come Laravel e Symfony per esempio! Un Framekork è realizzato con PHP ed da considerarsi come una libreria che mette a disposizioni, libri, enciclopedie, funzioni di aiuto e tools pronti per essere usati e messi a disposizione da anni e anni di esperienza di programmazione. Perché risolvere lo stesso problema ex-novo quando é già stato risolto decine e decine di volte in passato? Immaginiamo un coltellino svizzero, ecco questo é un framework e questo é codeigniter! Implementare la soluzione di problemi comuni già risolti é proprio un bel vantaggio, non c’è che dire! Poi la sintesi insita in tutto il meccanismo OOP che non ha nulla a che vedere con gli spaghetti code del procedurale. Con codeigniter in sostanza siamo bravi come si dice in gergo a reinventare l’acqua calda! A questo punto non ci resta che sbattere la testa su MVC o Model View Controller, di che cosa stiamo parlando?! E’ un pattern che ci semplifica la vita e che separa le funzionalità della vista, da quelle del vestito e da quella logica delle operazioni da compiere. Chi fa da mediatore tra Vista e Modello é il controller che macina e comunica tra i due contendenti , mastica ed elabora prima di restituire le risposte indotte in INPUT dall’ utente sulla vista del browser dopo averle fatte elaborare dal Modello. Del resto le funzioni che ci servono per fare un CRUD con i dati di un database (ossia leggere i dati, inserire i dati, modificare i dati o cancellarli) sono sempre le stesse quindi se ne deduce che una volta risolto il problema della funzionalità dinamica di un DB possiamo limitarci nei nostri prossimi progetti a fare un copia e incolla delle nostre funzioni critiche! Codeigniter è il framework più leggero e facile da usare tra quelli esistenti per piccole applicazioni, ecco perché dovremmo conoscerlo! Non andiamo a usare un cannone per far fuori una zanzara, ma ci serve solo una energica soffiata, nessun spreco di materiale e di costi e dispendio inutile di energie quindi! Questo ci indica anche che se dobbiamo fare un progetto complesso per una grande multinazionale Codeigniter non é il framework più indicato, occorrerà quindi di volta in volta valutare caso per caso quale strumento usare per realizzare nella pratica la nostra idea. A questo facciamo partire XAMPP per attivare server apache e database mysql e dopo aver scaricato la nostra libreria posizioniamola con il nome progetto dopo localhost, in questo caso noi abbiamo rinominato la castella in western. Se tutto è andato a buon fine andremo a visualizzare la situazione seguente all’indirizzo http://localhost/western/ che è anche la fine canonica e introduttiva della prima parte del nostro progetto spiegato passo, passo.

Togliamoci solo una curiosità, se volessi personalizzare il testo dove devo andare? Vediamo: application/views/welcome_message.php, proviamo a modificare HTML statico in corrispondenza del primo Paragrafo scrivere benvenuti nella mia pagina progetto western!

Ok quindi questa pagina è caricata dal famoso CONTROLLER? Si: application/controllers/Welcome.php vediamo che esiste l’istruzione:

public function index()
{
    $this->load->view('welcome_message');
}

Nel prossimo appuntamento si enterà nel vivo delle sparatorie western e nell’ indice di gradimento che suscitano tra i loro appassionati spettatori usando questa potentissima tecnologia!