Laravel har varit ett av de mest populära PHP-ramverken under många år. Det är elegant, skalbart och har blivit ett av standardramverken för utvecklare och företag som arbetar med PHP. Nu är Laravel 9 på väg med massor av nya funktioner.

Tidigare har nya utgåvor kommit var sjätte månad, vilket skapat en hel del frågor, kommentarer och förvirring om Laravels nya utgivningsprocess. Med lanseringen av Laravel 9 har ramverket gått över till en 12-månaders utgivningscykel och det kommer att släppas under januari 2022.

Denna artikel utforskar Laravel 9:s nyckelfunktioner. Dessutom beskriver vi hur du uppgraderar till Laravel 9 och börjar utveckla webbappar.

Vad är Laravel?

Laravel är ett PHP-webbapplikationsramverk med öppen källkod som är känt för sin eleganta syntax. Det är ett MVC-ramverk för att bygga enkla till komplexa webbapplikationer med hjälp av programmeringsspråket PHP, och det följer strikt arkitekturmönstret MVC (model-view-controller).

Om du inte har använt Laravel tidigare kan du läsa om vad Laravel är här och kika på vår lista över utmärkta Laravel-guider för att komma i gång.

Viktiga funktioner i Laravel

För den som är ny på detta ramverk har vi listat några av de bästa Laravel-funktionerna för att öka din förståelse.

Laravel-funktioner i bubblor
Laravel-funktioner i bubblor (Bildkälla: Moon Technolabs)

Eloquent ORM

Laravels ORM (Object-relational mapper) kallas för Eloquent, och det är en av de bästa funktionerna i Laravel eftersom den möjliggör sömlös interaktion med datamodellen och databasen.

Med Eloquent abstraherar Laravel varje hinder som involverar interaktion med och att skriva komplexa SQL-förfrågningar för att komma åt data från din databas.

Artisan CLI

Artisan CLI, eller kommandoraden, är en annan viktig aspekt av Laravel. Med den kan du skapa eller ändra vilken del av Laravel som helst från kommandoraden utan att behöva navigera genom mappar och filer.

Med Artisan kan du även interagera med din databas direkt från kommandoraden med Laravel Tinker, helt utan att installera en databasklient.

MVC-arkitektur

Laravels arkitektur grundar sig på MVC, vilket gör språket relaterbart och anpassningsbart eftersom det följer ett vanligt webbutvecklingsmönster med pågående, betydande förbättringar.

Laravel kommer att tvinga dig att lära dig och förstå arkitekturmönstret MVC som är populärt och används i nästan alla ramverk, såsom AdonisJS från JavaScript och ASP.NET MVC från C#.

Automatisk paginering

Om du någonsin har kämpat med paginering i dina program, kommer du att förstå värdet av att din paginering kommer skötas av ett inbyggt ramverk.

Laravel löser pagineringskrångel genom att bygga automatisk paginering redan från början. Denna funktion är en av de mest omtyckta och eliminerar arbetet med att lösa pagineringsmysteriet själv.

Säkerhet

Det är viktigt att granska säkerhetsåtgärderna för alla webbprogram du överväger att använda, eftersom brist på noggranna efterforskningar kan leda till förlust av pengar eller till och med kapning av din webbplats eller produkt.

Laravel har massor av säkerhetsåtgärder på plats eftersom de följer OWASP:s säkerhetsprinciper. Från CSRF (cross-site request forgery) till SQL-injektion har Laravel en inbyggd lösning för allt.

Vad du kan förvänta dig med Laravel 9

Enligt planerna skulle Laravel 9 släppas under september 2021 men det har skjutits upp till januari 2022, vilket gör det till den första långsiktiga support-utgåvan (LTS) att introduceras enligt 12-månaderscykeln. Denna försening beror på många orsaker, inklusive, men inte begränsat till följande:

  1. Laravel använder olika sorters gemenskapsdrivna projekt och cirka nio Symfony-bibliotek. Symfony planerar dock att släppa version 6.0 under november 2021. Förseningen gör det möjligt för Laravel-teamet att införliva denna nya version av Symfony som en del av Laravel 9.
  2. Förseningen kommer att ge teamet tid att övervaka hur Laravel interagerar med den nya versionen av Symfony under två månader. Det ger dem också utrymme för att korrigera eventuella funktionsbrytande förändringar eller buggar.
  3. Slutligen kommer fördröjning av lanseringen av Laravel 9 ge Laravel-teamet en bättre position för årliga framtida utgåvor. Det kommer att ge teamet två månader extra tid efter Symfonys egna utgåvor.

Av dessa skäl kan vi förstå att utgåvan är värd att vänta på, trots fördröjningen.

Nya funktioner i Laravel 9

Låt oss nu utforska listan över de funktioner och förbättringar som du kan förvänta dig i den kommande större utgåvan av Laravel.

Lägsta PHP-krav

Först och viktigast av allt kräver Laravel 9 senaste PHP 8 och PHPUnit 8 för testning. Det beror på att Laravel 9 kommer att använda den nyaste Symfony v6.0, som också kräver PHP 8.

PHP 8 kommer med betydande förbättringar och funktioner, från JIT-kompilering till s.k. konstruktörsegenskapsfrämjande. Du kan utforska de olika PHP-versionstesten och lära dig att uppgradera till den senaste PHP-versionen, PHP 8 här på vår blogg.

Anonym stubbmigrering

Laravel ställer in anonym stubbmigrering som standardbeteende när du kör det populära migreringskommandot:

php artisan make:migration

Den anonyma stubbmigreringsfunktionen släpptes först i Laravel 8.37 för att lösa detta Github-problem. Problemet är att flera migreringar med samma klassnamn kan orsaka problem när du försöker återskapa databasen från början. Den nya stubbmigreringsfunktion eliminerar kollisioner mellan migrerade klassnamn.

Från och med Laravel 8.37 stöder ramverket nu anonyma klassmigreringsfiler, och i Laravel 9 blir det standardbeteendet.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Nytt gränssnitt för Query Builder,

Med nya Laravel 9 är typhinting mycket pålitligt för refaktorering, statisk analys och kodkomplettering i sina IDE:er. Det beror på bristen på delat gränssnitt eller arv mellan Query\Builder, Eloquent\Builder och Eloquent\Relation. Men med Laravel 9 kan utvecklare nu njuta av det nya Query Builder-gränssnittet för typhinting, refaktorering, och statisk analys.

<?php

return Model::query()
	->whereNotExists(function($query) {
		// $query is a Query\Builder
	})
	->whereHas('relation', function($query) {
		// $query is an Eloquent\Builder
	})
	->with('relation', function($query) {
		// $query is an Eloquent\Relation
	});

Den här versionen lade till det nya Illuminate\Contracts\Database\QueryBuilder-gränssnittet liksom Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder-egenskapen som kommer att implementera gränssnittet i stället för den magiska metoden __call.

Strängfunktioner för PHP 8

Eftersom Laravel 9 riktar sig till PHP 8 slog Laravel samman denna pull-förfrågan, som föreslår att du använder de senaste strängfunktionerna för PHP 8.

These functions include the use of str_contains(), str_starts_with(), and str_ends_with() internally in the \Illuminate\Support\Str class.

Dessa funktioner inkluderar användning av str_contains(), str_starts_with(), och str_ends_with() internt i \Illuminate\Support\Str-klassen.

Laravel 9:s funktioner och förbättringar som vi pratat om ovan är en smygtitt på vad komma skall. Det kommer definitivt att ge oss massor av buggfixar, funktioner och, naturligtvis, många banbrytande förändringar.

Så installerar du Laravel 9

Om du vill börja leka med Laravel 9 för utveckling och testning kan du enkelt installera och köra det på din lokala maskin.

Laravel 9 stöder PHP version 8, så om du planerar att testa det, se till att dubbelkolla din PHP-version eller gör en ny installation.

Du kan läsa mer information om utgåvan via Packagist.

För att installera Laravel 9 med Composer, kör följande:

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

Kommandot ovan kommer att skapa ett nytt Laravel-projekt med projektnamnet laravel-9-dev, med hjälp av senaste Laravel 9, som, enligt vad vi vet, fortfarande är under utveckling (därav dev-develop).

Den andra metoden är att använda Laravels globala CLI för att skapa ett nytt Laravel-projekt och välja att skapa ditt nya projekt från dev-grenen.

Ange följande kommando för att skapa ett nytt Laravel 9-projekt:

laravel new laravel-9-dev --dev

Nu när du har installerat Laravel 9 kan du komma in i den nya katalogen (laravel-dev) och köra artisan-kommandot för att kontrollera versionen:

cd laravel-9-dev
php artisan --version

Det bör visa dig utvecklingsversionen av Laravel 9. Voilà!

Sammanfattning

Laravel är ett attraktivt PHP-ramverk som får mer och mer uppmärksamhet bland utvecklare. Dess kommande stora utgåva, Laravel 9, är den första i en 12 månader lång utgivningscykel, och vi kan redan se att den kommer att införa flera saftiga nya funktioner.

Är detta hela listan över nya funktioner? Förmodligen inte, eftersom Laravel-teamet nog kommer att berätta om fler nya funktioner före utgivningsdatumet. Så se till att bokmärka det här inlägget eftersom vi kommer att gå igenom dem i framtida uppdateringar.

Nu är det din tur! Vad ser du mest fram emot med Laravel 9? Berätta i kommentarerna nedan!

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me