Competenze per tutti con CodeIgniter, quando il CMS MVC supporta la formazione!

Dopo aver realizzato http://umbriawayformazione.altervista.org/ il progetto di esordio fatto in 25 gg come primo approccio con codeigniter mi sono cimentato in http://umbriawayformazione.altervista.org/ci_project_competenze/ . L’obiettivo era quello di implementare rispetto al primo progetto una serie di situazioni nuove come un’ area riservata protetta da login e sessioni (senza database). Anche se i contenuti tuttora non sono completi, la piattaforma dovrebbe funzionare nelle due direzioni, per i cacciatori di taglie che entrano lo scopo é quello di visionare nel dettaglio il profilo del candidato, mentre per il candidato lo scopo é quello di focalizzare le aree di intervento dove può ancora migliorare le sue conoscenze in un ambito specifico. Possiamo archiviare il progetto notando come anche la paginazione in home sia stata risolta, quando nel primo creava ancora problemi. Inoltre l’obiettivo di migliorare la performances precedente dei 25 gg è stato abbattuto visto che qui in sei gg tutto é stato completato. Essendo un progetto che avevo in procedurale la cosa ha aiutato molto per incollare direttamente parte di codice statico nel progetto quindi il focus alla fine rimane quello dei contenuti che andrebbero curati e completati, ma che al momento come quid sono funzionali allo scopo che mi ero prefissato. Vediamo quindi i vantaggi dal punto di vista tecnico rispetto al primo progetto, il primo in assoluto è stato quello di volare letteralmente sulla configurazione iniziale che deve essere comunque accurata, nel config.php ci va il path:


$config['base_url'] = 'http://umbriawayformazione.altervista.org/nomecartellaprogetto/';

da usare poi per esempio nelle viste in questo modo:

<a href='<?php echo base_url();?>index.php/nomecontroller/metodo?id=<?php echo $result->id ?>'>

fatto questo passiamo all’ autoload.php:


$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('html','url','file','form');

poi passiamo al database.php:

$db[‘default’] = array(
‘dsn’ => ”,
‘hostname’ => ‘localhost’,
‘username’ => ‘nometuacartella’,
‘password’ => ‘12345’,
‘database’ => ‘pippo,
‘dbdriver’ => ‘mysqli’, etc etc

infine passiamo al routes.php:

$route['default_controller'] = 'nometuocontrollerprincipale';

tutte queste operazioni nel primo progetto western erano macchinose ma ora sono la prassi prima di iniziare a scrivere il codice. Da notare che anche nel metodo costruttore della classe controller posso richiamare manualmente le mie librerie e funzioni di supporto ad esempio sul costruttore con:

  public function __construct()
  {
    parent::__construct();

    $this->load->model('Nome_model');
    $this->load->helper('url','form');
    $this->load->library("pagination");
  }

MOLTO IMPORTANTE RIMANE IL RISPETTO DELLE CONVENZIONI DI PROGRAMMAZIONE CHE INDICANO NEL MAIUSCOLO COME PRIMA LETTERA L’IDENTIFICAZIONE PER LE PARTI FUNZIONALI IN PRIMO PIANO come nome file MODULO e CONTROLLER (e che danno luogo a errori non definibili se non rispettate). A tale proposito sembra che debba attrezzarmi meglio nel metodo. I nomi dei file dovrebbero essere univoci e funzionali al progetto senza correre il rischio di sovrapposizioni in caso di errori tra cartelle di progetti diversi, tutto ciò accende i riflettori anche su GIT che dovrò prima o poi dovrò imparare! A questo punto il passo successivo dovrebbe essere quello di implementare altre situazioni inedite tipo LOGIN con database visto che a livello base ho visto le dinamiche essenziali, in modo da far crescere le competenze sulla piattaforma. A conti fatti avere un contenitore che accudisce tutti i suoi file con delle classi anche da usare in ottica di sicurezza (cosa che non ho ancora visto) e che supporta velocemente grane come la paginazione ad esempio (anche se rimane da risolvere la stilizzazione) non ha prezzo! Il salto di qualità delle mie WEB APP é palese e tutto ciò avviene senza utilizzare un cannone sparato contro un moscerino (riferito ironicamente a Laravel, CI Framework é potente e leggero). Ovviamente rimangono da risolvere alcune problematiche legate alla definizizione delle query builder che spesso mi danno problemi per esempio sull’ order by! Al prossimo progetto!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...