Verificați noile funcții interesante ale Laravel 5.8

Publicat: 2022-01-02

Laravel, un framework PHP remarcabil creat de Taylor Otwell în 2011 este cel mai bun cadru PHP dintre toate. Este accesibil, puternic, robust și țese niște aplicații uimitoare.

Acest cadru PHP facilitează dezvoltatorilor să implementeze modelul MVC abstragând funcționalitățile complexe. Actualizările sunt obligatorii și sunt doar pentru îmbunătățirea ciclului de viață al aplicației.

Laravel lansează aproximativ o actualizare la fiecare 5-6 luni și și în acest an, Laravel a lansat versiunea 5.8 (martie '19) și nu este disponibil pentru utilizare. Puteți angaja un dezvoltator Laravel pentru a finaliza sarcina cel mai devreme.

Îmbunătățirea continuă față de versiunile anterioare a adus unele dintre caracteristicile interesante pentru dezvoltatori. Să aruncăm o privire la câteva dintre caracteristicile uimitoare pe care le va oferi această nouă versiune

  • Rezolvarea automată a politicilor
  • Suport carbon 2.0
  • Are relații unice prin Elocvente
  • Protejarea jetoanelor și hashing
  • Cache TTL
  • Configurarea fusului orar al programatorului
  • Artizan:: apelează îmbunătățiri
  • Mock/spy Testarea metodelor de ajutor
  • Îmbunătățiri ale servirii artizanale
  • Metodă elocventă de ordin superior
  • dotenv 3.0
  • Noi erori de manipulare a șabloanelor

Rezolvarea automată a politicii:

Versiunile anterioare Laravel aveau modele sau politici în locații neconvenționale și trebuiau înregistrate în clasa AuthServiceProvider. În această versiune, modelele și politicile vor fi stocate în locații convenționale.

Nu mai trebuie să înregistrați manual politica de autorizare a modelului. Această nouă versiune va descoperi automat politici urmând convențiile standard de denumire Laravel.

Dacă politicile pe care doriți să le înregistrați se află într-o altă locație, înregistrați un apel înapoi folosind

Gate::guessPolicyNamesUsing .

Puteți apela această metodă din metoda booth a AuthServiceProvider în felul următor:

 utilizați Illuminate\Support\Facades\Gate;
Gate::guessPolicyNamesUsing(funcție ($modelClass) {
// returnează numele clasei de politică...
});

Suport Carbon 2.0:

Vești bune pentru dezvoltatori, acum puteți face aplicația dvs. să folosească CarbonImmutable ca implicit.

Acest pachet extinde clasa Data și Ora a PHP și face lucrul cu Data și Ora foarte ușor. Alegerea clasei depinde de utilizator.

Relația HasOneThrough elocventă:

Această nouă caracteristică este aproape similară cu cea oferită de Rails. Să luăm un exemplu, Să presupunem că avem trei modele, modelul Furnizor, Cont și Istoricul contului. Cu cuvinte simple, un furnizor are un cont și un cont are un singur istoric de cont.

În versiunile anterioare, pentru a obține istoricul contului, scriam: $supplier->account->accountHistory. Dar acum, prin această relație elocventă, vei scrie imediat

 $istorie = $furnizor->accountHistory

în modelul întregului cont.

 funcția publică accountIstory()
{
Returnează $this->hasOneThrough(AccountHistory::class, Account::class);
}

Token Guard token hashing:

Cu funcția de protecție a jetoanelor, acum puteți salva jetoanele API ca hash-uri SHA-256. Mai devreme, tokenul API-ului a fost stocat ca simboluri cu text simplu, care acum a fost îmbunătățit. Acest lucru a sporit securitatea și stocarea jetoanelor generate.

TTL cache:

Setarea de stocare în cache de la minute s-a schimbat acum în secunde. Această îmbunătățire se face pentru un control mai precis și mai granular al timpului de expirare. Caracteristica este conformă cu standardul bibliotecii de cache PSR-16.

În plus, nu uitați să actualizați întotdeauna memoria cache a aplicației la câteva secunde.

 // Laravel 5.7 - Păstrați articolul timp de 5 minute...
Cache::put('foo', 'bar', 10);

// Laravel 5.8 - Păstrați articolul timp de 5 secunde...
Cache::put('foo', 'bar', 10);

Configurarea fusului orar al programatorului:

Această nouă versiune de Laravel vă permite să personalizați fusul orar pentru o sarcină listată folosind metoda fusului orar.

 $schedule->comandă('run')
->zilnic()
->la('15:00')
->timezone('America/Chicago');

Aceasta a fost considerată o sarcină dificilă în versiunea anterioară, deoarece trebuia să o faceți pentru fiecare sarcină programată. Dar cu aceasta, abia acum trebuie să definiți o metodă numită ScheduleTimezone în fișierul app/Console/Kernel.php.

Modificările vor fi apoi atașate fiecărui programator din listă.

 /**
* Obțineți fusul orar care ar trebui utilizat în mod implicit pentru evenimentele programate.
*
* @return \DateTimeZone|string|null
*/
funcția protejată scheduleTimezone()
{
returnează „America/Chicago”;
}

Îmbunătățiri ale apelurilor artizanale:

Puteți face comanda Artisan folosind metoda Artisan::call în această nouă versiune. Comenzile pot fi transmise acum ca o matrice într-un singur șir, așa cum este prezentat mai jos:

 Artisan::call('migrate:install --database=foo');

Îmbunătățiri ale servirii artizanale:

Versiunile anterioare aveau portul implicit alocat în 8000 pe care va rula aplicația. Și dacă orice altă comandă rulează pe acest port, probabil că nu va servi noua comandă.

Noua versiune va scana portul până la 8009, permițând dezvoltatorilor să ruleze mai multe aplicații în același timp.

Metode de ajutor pentru testarea simulată/spion:

Testarea simulată va ajuta doar dezvoltatorul să facă codul mai curat și lizibil. Metodele simulate și de spionaj sunt adăugate la clasa de bază de caz de testare Laravel. Această metodă va lega automat clasa care va fi batjocorită cu containerul.

 testul funcției publiceBasicTest()
{
$this->mock(TransactionService::class, function($mock){
$mock->shouldReceive('find')->once()->with(1)->andReturn(['id' => 1, 'name' => 'foo'])
});
}

Metoda de ordin superior sau unde elocventă:

În versiunile anterioare, am defini interogarea în domeniul de aplicare cu „sau” în apelurile de închidere. Odată cu introducerea unei metode de „ordine superioară” sau Unde, puteți înlănțui cu ușurință aceste interogări de domeniu în mod colectiv, fără a utiliza închideri. De exemplu:

 $users = App\User::emailVerified()->orWhere->active()->get();

dotenv 3.0:

Pentru a gestiona noul fișier .env al proiectului, Laravel 5.8 va suporta noul dotenv 3.0. Acest nou dotenv 3.0 acceptă șiruri cu mai multe linii și spațiu alb la sfârșitul șirurilor. Această caracteristică ar fi de mare ajutor acolo unde sunt necesare chei API cu mai multe linii pentru securitate.

Noi șabloane de pagini de eroare:

Sunt introduse noi pagini de eroare cu design foarte minimalist, care sunt potrivite pentru o gamă largă de site-uri web și aplicații. Este chiar posibil să personalizați paginile de eroare sau să importați pagina de eroare proiectată anterior.

Există multe companii de dezvoltare Laravel pentru dezvoltarea de aplicații. Această nouă versiune este un tezaur al unora dintre caracteristicile uimitoare. Conținutul de mai sus a enumerat unele dintre îmbunătățirile notabile și caracteristicile extinse în noua versiune Laravel 5.8.

Unele dintre funcții pot fi integrate fără probleme în site-uri web pentru a le face mai funcționale și mai ușor de utilizat.

Pentru a actualiza aplicația care rulează la versiunea Laravel 5.8 , puteți consulta ghidul de actualizare și notele de lansare pe site-ul oficial.