Quando si tratta di creare applicazioni web strutturate e complesse, si desidera che tutto sia veloce e sicuro, con Laravel, un framework php MVC, è possibile ottenere una sintassi espressiva ed elegante mentre si semplifica lo sviluppo, facilitando le attività più comuni utilizzate nella maggior parte delle applicazioni Web, come:

  • Motore di routing semplice e veloce.
  • Potente contenitore per dependency injection.
  • Back-end multipli per l'archiviazione di sessioni e cache.
  • Migrazioni dello schema agnostico del database.
  • Elaborazione di processi in background robusta.
  • Trasmissione di eventi in tempo reale.

Ogni attività può essere eseguita utilizzando una CLI php chiamata Artisan, ad esempio è possibile avviare un nuovo ambiente di sviluppo locale ed eseguire l'applicazione sul browser con il comando php artisan serve nella cartella principale in cui si trova lo script.

Prendiamo una semplice applicazione di tipo blog come esempio, può essere strutturata in questo modo:

AUTENTICAZIONE

L'autenticazione è qualcosa che Laravel ha nativamente, si tratta di un semplice comando:

php artisan make:auth

Questo comando deve essere utilizzato su nuove applicazioni e installerà le views di base per il layout, views di registrazione e di login, nonché i percorsi per tutti gli endpoint di autenticazione.

MODEL

Le applicazioni di tipo blog contengono sostanzialmente post, quindi inizieremo con il Model per il post. In genere sono archiviati nella directory app/Http.

Ecco un esempio:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
    protected $guarded = [];
    /**
     * The belongs To Relationship
     *
     * @var array
     */
    public function user()
    {
        return $this->belongsTo(User::class);
    }     
}

Nel model si dichiarano metodi e relazioni di database tra altre classi come la relazione "Belongs to" (Appartiene a) con un utente.

CONTROLLER

Il controller è una classe che contiene e gestisce tutta la logica per ogni route dell'app. In genere sono archiviati nella directory app/Http/Controller.

Ecco un esempio:

<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Intervention\Image\Facades\Image;
class PostsController extends Controller
{
 use AuthorizesRequests;
 public function __construct()
 {
  // Require the user to be logged in
  $this->middleware('auth', ['except' => ['show']]);
 }
  private function getPostByAlias($alias) {
  return Post::where('alias', $alias)->firstOrFail();
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
  $user = auth()->user();
  $posts= Post::where('user_id', '=' , $user->id)->latest()->get();
  return view('posts.index', compact('posts'));
 }

In questo controller stai gestendo la logica per la route dell'index, che di solito è la pagina principale con il percorso "/" e in questo caso stai restituendo tutti gli ultimi post dell'utente che ha effettuato l'accesso.

VIEWS PER IL FRONTEND

Le views in Laravel sono blocchi di codice collegati tra loro attraverso un motore di template chiamato Blade.

A differenza di altri popolari motori di template PHP, Blade non ci limita a utilizzare il semplice codice PHP. In effetti, tutte le views Blade sono compilate in un semplice codice PHP e memorizzate nella cache fino a quando non vengono modificate, il che significa che Blade aggiunge sostanzialmente zero overhead alla tua applicazione. I file Blade utilizzano l'estensione .blade.php e in genere vengono memorizzati nella directory resources/views.

Ecco un esempio:

<!-- Stored in resources/views/layouts/app.blade.php -->
<html>
 <head>
   <title>{{ config('app.name', 'Laravel') }} - @yield('title')</title>
 </head>
 <body>
   @section('sidebar')
    This is the master sidebar.
   @show
   <div class="container">
    @yield('content')
   </div>
 </body>
</html>

Questa semplice view vuole essere un contenitore di altro codice dei file figli nella sezione del contenuto con @yield("content").

FRONTEND SCAFFOLDING

Mentre Laravel non determina quali pre-processori JavaScript o CSS è possibile utilizzare, fornisce un punto di partenza di base per l’utilizzo di framework come Bootstrap, React, and / or Vue utilizzati in molte applicazioni.

Per iniziare a utilizzare questi framework frontend è necessario installare un pacchetto utilizzando Composer:

composer require laravel/ui --dev

Una volta installato il pacchetto laravel/ui, puoi installare il framework frontend che preferisci usando il comando ui Artisan

// Generate basic scaffolding...
php artisan ui bootstrap
php artisan ui vue
php artisan ui react
Spero tu abbia trovato Laravel interessante, per saperne di più su cosa puoi fare più nello specifico, puoi visitare la documentazione ufficiale di Laravel.
Condividi