Il nostro primo progetto con Laravel

seo umbria

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:

ecco come appare la home dopo aver scaricato l’ultima versione di Laravel

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>
la mia prima pagina web con laravel, wow

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';
});
questo Laravel inizia a piacermi!

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:

per fortuna c’è una comunità che risolve i problemi ai newbie che iniziano con Laravel
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

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...