laravel IN pratica
Dopo aver installato GIT BASH e Composer come suggerito all’ indirizzo https://umbriawayfidelizza.wordpress.com/2021/02/21/iniziare-con-laravel-primi-passi-costruire-la-prima-applicazione/ con XAMPP che abbiamo reso attivo, ci accingiamo a seguire i consigli per creare la nostra prima APP LARAVEL, quindi dopo aver creato una cartella di lavoro chiamata LARAVEL dentro la canonica HTDOCS e aperta la finestra bash con tasto destro sulla cartella ci siamo posizionati da riga di comando dentro la nuova cartella e abbiamo digitato il comando:
composer create-project laravel/laravel wpfunction
dove wp function è il nome del nostro progetto che ha una duplice funzionalità: da un lato ci permette di vedere Laravel d vicino per la prima volta e dall’ altro ci consente di catalogare tutta una serie di funzioni base WP per costruire temi da zero, operazione di ripasso e consolidamento che personalizza una versione ridotta e nostrana del famoso codex. Dopo aver lanciato il comando ci posizioniamo all’ interno della cartella wpfunction con il comando cd (change directory) e dall’ interno del progetto lanciamo il server per vedere quello che viene proposto come visualizzazione dal framework, lanciamo quindi il comando
php artisan serve
a questo punto ci verrà detto di digitare sulla finestra di browser l’indirizzo http://127.0.0.1:8000/ che ci consentirà di vedere la homepage canonica:

Differenza rispetto a Codeigniter framework
Codeigniter Framewok lo conosciamo perché abbiamo tirato su dei progetti a livello base ma qui la sensazione che si ha subito è quella di avere tra le mani uno strumento ben più potente che finisce per sparare con un cannone a una zanzara. Infatti se pesiamo l’applicazione vuota appena creata ci accorgiamo che siamo sull’ ordine di 30 mega byte mentre codeigniter risulta più leggero almeno sulla carta (dipende sempre da che tipo di web app andiamo a sviluppare)
Aprire la cartella di progetto con l’editor
A questo punto vogliamo cancellare la pagina di default proposta da Laravel per crearne una nostra e per fare questo dobbiamo aprire il progetto con tutti i file dentro il nostro editor preferito. Prima ancora dobbiamo capire come funziona il tutto e sapere dove andare per fare delle cose, visto che file e cartelle formano un labirinto e ogni directory ha una sua funzione specifica.
Presentazione del progetto
Abbiamo detto che vogliamo fare una sorta di glossario per ripassare WP e le modalità con cui le funzioni del codex formano i temi. Per fare questo vogliamo integrare bootstrap e mettere una navbar in alto in modo da appoggiarci poi per inserire una serie di link statici che ci serviranno per visualizzare le informazioni che ci interessano. Quindi nulla di dinamico con database a supporto, tuttavia già nel realizzare questa semplice applicazione che sembrerebbe statica all’ apparenza ci sono parecchie cose su cui focalizzare la nostra attenzione. Il file web.php sotto directory routes e il file welcome.blade.php che si trova dentro a resources/view . Ok se andiamo a a vedere il contenuto del file web.php dentro la cartella routes vediamo che:
<?php use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); });
c’è una istruzione che mi rimanda alla pagina welcome , quindi andiamo a vedere dentro la cartella resources e dentro la cartella view scopriamo che c’è un file che si chiama welcome.blade.php ebbene se lo aprima e commentiamo tutto il codice che c’è all’ interno del body scopriamo che possiamo riempire la pagina a nostro piacimento, per esempio se scrivessi:
<center><h1> ciao laravel è un piacere conoscerti</h1></center>

quindi abbiamo già visto qualcosa di simile in codeigniter, anzi al di là della sintassi diversa qui siamo più o meno sulla stessa barca come logica e anche come analogie sintattiche, al di là delle differenze del file system. Proviamo a fare il seguente esperimento, andiamo sulla pagina precedente web.php commentiamo il codice precedente e scriviamo il blocco di istruzioni:
Route::get('/', function () { return 'ebbene questo febbraio freddo ha i giorni contati'; });

Creare un controller
La maggior parte del tempo noi lavoreremo dentro la cartella APP e infatti se andiamo a curiosare scopriamo che all’ interno della ulteriore cartella annidata HTTP dentro abbiamo la sezione controller. Adesso che abbiamo capito come modificare e puntare alle pagine con il metodo routes possiamo creare un controller che gestisca una serie di pagine che ci servono per il nostro sito, quindi in visual studio code apro la finestra terminale e digito il comando:
php artisan make:controller PagesController
a questo punto se ritorno sulla cartella Controllers scoprirò che oltre ad avere il Controller.php di default ho ora anche il PagesController.php al momento il contenuto di questo file ha al suo interno una classe che estende il nostro Controller parent:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PagesController extends Controller { // }
per consentire la visualizzazione delle pagine dovrò creare una serie di funzione pubbliche per esempio per inserire la welcome posso trasformare il codice di cui sopra in:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PagesController extends Controller { public function home(){ return view('home'); }
A questo punto mi serve la route da definire quando vado sul file web.php dentro la cartella routes e lo trasformo in:
<?php use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/','PagesController@home');
dove il simbolo chiocciola diventa molto importante perché richiama il metodo della function pubblica che di nome fa home; a questo punto se andiamo a vedere non funziona nulla e ci dà un errore
Illuminate\Contracts\Container\BindingResolutionException Target class [App\Http\Controlles\PagesController] does not exist.
ok dopo numerose imprecazioni alla Buffon ecco come è stato risolto, digitando l’errore su google è comparsa un anima pia che ha risolto un problema analogo mostrando il codice giusto da scrivere nel file web.php:

Route::get('/','App\Http\Controllers\PagesController@home');
il problema risiedeva nel fatto che il path del controller necessitava di una radice più ampia per essere trovato perchè nella versione 8 di Laravel ci sono stati dei cambiamenti, nei prossimi articoli mostreremo come partendo da questo punto sia relativamente semplice andare avanti per raggiungere il nostro obiettivo che é quello di avere a disposizione una piattaforma per imparare in maniera artigianale le funzioni di wordpress senza passare dal codex. Ora che abbiamo capito almeno un frammento di basi che muovono route, controller e viste siamo quasi pronti per lanciarci nel vuoto con la costruzione della nostra web app, ma prima bisogna passare per l’integrazione con bootstrap e anche la creazione di una pagina master per lavorare con gli include del template engine di Laravel che è Blade e che ha le sue regole per gestire queste operazioni