Laravel 8 piyasaya sürüldü ve Laravel Jetstream, bir model dizini, model migration sınıfları, geçiş ezme, hız sınırlayıcı iyileştirmeler, zaman testi yardımcıları, dinamik blade componentleri ve daha birçok özellik dahil olmak üzere birçok yeni özellik içeriyor.
Yeni özelliklere geçmeden önce, sürüm 6'dan başlayarak, Laravel’in artık her altı ayda bir yeni bir ana sürüm yayınlayacağını belirtmek isterim.
Laravel Jetstream
Laravel Jetstream , önceki sürümlerde bulunan mevcut Laravel UI iskelesini geliştirir. Oturum açma, kayıt, e-posta doğrulama, iki faktörlü kimlik doğrulama, oturum yönetimi, Laravel aracılığıyla API desteği ve ekip yönetimi dahil olmak üzere yeni projeler için bir başlangıç noktası sağlar.
Model Dizini
Laravel 8'in uygulama iskeleti bir app/Models
dizin içerir . Tüm jeneratör komutları, modellerin app/Models
; ancak bu dizin mevcut değilse, framework uygulamanın modelleri app/
klasör içinde tuttuğunu varsayacaktır .
Model Factory Sınıfları
Eloquent model factory artık Laravel 8'den başlayarak sınıf tabanlıdır ve factory arasındaki ilişkiler için geliştirilmiş destekle (yani, bir kullanıcının birçok görevi vardır). Yeni ve geliştirilmiş model factory aracılığıyla kayıtlar oluşturmak için yeni sözdiziminin çok güzel bir biçime girmiştir.
use App\Models\User;User::factory()->count(50)->create();// using a model state "suspended" defined within the factory class
User::factory()->count(5)->suspended()->create();
Migration Squashing
Uygulamanız çok sayıda migrate dosyası içeriyorsa, bunları artık tek bir SQL dosyasında sıkıştırabilirsiniz. Bu dosya önce migrate işlemini çalıştırılırken, sıkıştırılmış şema dosyasının parçası olmayan kalan migrate dosyaları tarafından çalıştırılır. Mevcut migrate’i ezmek ve migrate dosyası şişkinliğini azaltabilir ve muhtemelen testleri çalıştırırken performansı artırabilir.
Geliştirilmiş Hız Sınırlaması
Laravel 8, mevcut hız sınırlama işlevselliğinde iyileştirmeler sağlarken, mevcut yazılımıyla geriye dönük uyumluluğu destekler ve çok daha fazla esneklik sunar. Laravel 8 aracılığıyla tanımlayabileceğiniz Hız sınırlayıcı konseptine sahiptir :
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;RateLimiter::for('global', function (Request $request) {
return Limit::perMinute(1000);
});
Gördüğünüz gibi, for()
yöntemi HTTP istek örneğini alır ve size istekleri dinamik olarak sınırlama konusunda tam kontrol sağlar.
Zaman Testi Yardımcıları
Laravel kullanıcıları, mükemmel Carbon PHP kütüphanesi aracılığıyla zaman değişikliği üzerinde tam kontrol sahibi oldular. Laravel 8, testlerde zamanı değiştirmek için uygun test yardımcıları sağlayarak bunu bir adım daha ileri götürür:
// Travel into the future...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();// Travel into the past...
$this->travel(-5)->hours();// Travel to an exact time...
$this->travelTo(now()->subHours(6));// Return back to the present time...
$this->travelBack();
Bu yöntemleri kullanırken, her test arasında zaman sıfırlanacaktır.
Dinamik Blade Component’i
Bazen bir blade component’i çalışma zamanında dinamik olarak oluşturmanız gerekir. Laravel 8 <x-dynamic-component/>
, bileşeni oluşturmayı sağlar :
<x-dynamic-component :component="$componentName" />
Laravel v8 hakkında daha fazla bilgi edinin…
Bunlar Laravel 8'deki yeni özelliklerden sadece birkaçıdır ve tam bir liste görmek için Laravel 8 sürüm notlarına ve yükseltme kılavuzuna göz atın .
Yorum Yap