Laravel Sürüm Notları
Sürüm oluşturma düzeni
Laravel ‘ın sürüm oluşturma düzeni aşağıdaki kuralı sürdürür: paradigma. Major. minör. Ana çerçeve sürümleri her altı ayda bir yayınlanır (Şubat ve Ağustos), Ise küçük bültenleri her hafta olarak sıklıkla piyasaya sunulabilir. Küçük sürümleri hiçbir zaman kırılma değişiklikleri içermelidir.
Başvuran Laravel Framework veya kendi bileşenlerini uygulamanız veya paketinden, her zaman gibi bir sürüm kısıtlaması kullanmalısınız 5,5. *, Laravel büyük sürümleri kırılma değişiklikleri içerir.
Paradigma değişen sürümleri yıllara ayrılır ve çerçeve mimarisi ve kurallarında temel vardiyalar temsil eder.
Destek Politikası
Laravel 5,5 gibi LTS sürümleri için, hata düzeltmeleri 2 yıl için sağlanır ve güvenlik düzeltmeleri 3 yıl boyunca sağlanır. Bu sürümler destek ve bakımın en uzun penceresini sağlar. Genel sürümlerde, hata düzeltmeleri 6 ay boyunca sağlanır ve 1 yıl boyunca güvenlik düzeltmeleri sağlanır.
Laravel 5.6
Laravel 5,6, geliştirilmiş bir günlük sistemi, tek sunuculu görev planlama çizelgeleme, model seri hale getirme, dinamik hızda sınırlama, yayın kanalı sınıfları, API kaynak denetleyici üretme için iyileştirmeler ekleyerek Laravel 5,5 ‘ de yapılan gelişmeleri sürdürüyor. Anlamlı Tarih biçimlendirme geliştirmeleri, Blade bileşen takma adları, Argon2 şifre karma desteği, çarpışma paketinin eklenmesi ve daha fazlası. Ayrıca, tüm ön uç iskeleleri Bootstrap 4 ‘ e yükseltilmiştir.
Laravel tarafından kullanılan tüm temel symfony bileşenleri symfony ~ 4,0 sürüm serisine yükseltilmiştir.
Laravel 5,6 sürümü Spark 6,0 salınımına denk geldiğinde, serbest bırakılması için ilk büyük yükseltmeyi Laravel. Spark 6,0, şeritli ve Braintree, yerelleştirme, Bootstrap 4, geliştirilmiş bir UI ve şeritli öğeler desteği için koltuk başına fiyatlandırmayı tanıttı.
Günlük iyileştirmeleri
Laravel 5,6, Laravel ‘ın günlük sistemine büyük gelişmeler getiriyor. Tüm günlük yapılandırma yeni config/logging. php yapılandırma dosyasında ev sahibidir. Şimdi kolayca günlük iletileri için birden çok işleyicileri göndermek “yığınları ” oluşturabilir. Örneğin, tüm hata ayıklama düzeyi iletileri, takımınızın hataları hızlı bir şekilde tepki böylece bolluk için iletileri gönderirken sistem günlüğüne gönderebilirsiniz:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['syslog', 'slack'],
],
],
Ayrıca, artık günlük sisteminin yeni “Tap ” işlevini kullanarak var olan günlük kanallarını özelleştirmek daha kolaydır.
Tek sunuculu görev zamanlaması
Uygulamanızı birden çok sunucuda çalışıyorsa, şimdi yalnızca tek bir sunucuda yürütmek için zamanlanmış bir işi sınırlayabilirsiniz. Örneğin, her Cuma gecesi yeni bir rapor üreten zamanlanmış bir görev bulunduğunu varsayalım. Görev Zamanlayıcı üç çalışan sunucularda çalışıyorsa, zamanlanmış görev üç sunucu üzerinde çalışır ve raporu üç kez oluşturur. İyi değil!
Görev yalnızca bir sunucuda çalıştırmalısınız belirtmek için kullanabileceğiniz onOneServer yöntemi zamanlanmış görev tanımlarken. Görev elde etmek için ilk sunucu, diğer sunucuların aynı cron döngüsünde aynı görevi çalıştırmasını önlemek için iş üzerinde atomik kilit güvence altına alır:
$schedule->command('report:generate')
->fridays()
->at('17:00')
->onOneServer();
Dinamik oran sınırlayıcı
Laravel önceki sürümlerinde bir rota grubunda bir oran sınırı belirtirken, en fazla istek sabit kodlanmış sayıda sağlamak zorunda kaldınız:
Route::middleware('auth:api', 'throttle:60,1')->group(function () {
Route::get('/user', function () {
//
});
});
Laravel 5,6 içinde, kimliği doğrulanmış kullanıcı modelinin bir özniteliğini temel alarak en fazla dinamik istek belirtebilirsiniz. Örneğin, Kullanıcı modeliniz bir rate_limit özniteliği içeriyorsa, en fazla istek sayısını hesaplamak için kullanılacak şekilde, özniteliğin adını azaltma ara katmanına iletebilirsiniz:
Route::middleware('auth:api', 'throttle:rate_limit,1')->group(function () {
Route::get('/user', function () {
//
});
});
Yayın Kanal sınıfları
Uygulamanız çok farklı kanalları tüketiyor, rotalar/kanallar. php dosyası hantal hale gelebilir. Yani, kanalları yetkilendirmek için kapatmaları kullanmak yerine, artık kanal sınıfları kullanabilirsiniz. Bir kanal sınıfı oluşturmak için yap: Channel Artisan komutunu kullanın. Bu komut, uygulama/yayın dizininde yeni bir kanal sınıfı yerleştirir.
php artisan make:channel OrderChannel
Daha sonra, rota/kanallar. php dosyasına kanalınızı kaydedin:
use App\Broadcasting\OrderChannel;
Broadcast::channel('order.{order}', OrderChannel::class);
Son olarak, kanal için yetkilendirme mantığı kanal sınıfı ‘ Join yöntemi yerleştirebilirsiniz. Bu Join yöntemi, genellikle kanal yetkilendirme kapatma yerleştirilmiş olacaktır aynı mantığı ev. Tabii ki, ayrıca kanal modeli bağlama yararlanabilir:
<?php
namespace App\Broadcasting;
use App\User;
use App\Order;
class OrderChannel
{
/**
* Create a new channel instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Authenticate the user's access to the channel.
*
* @param \App\User $user
* @param \App\Order $order
* @return array|bool
*/
public function join(User $user, Order $order)
{
return $user->id === $order->user_id;
}
}
API denetleyici oluşturma
API ‘ler tarafından tüketilen kaynak yollarını bildirirken, genellikle oluşturma ve düzenleme gibi HTML şablonlarını içeren yolları dışlamak isteyeceksiniz. Bu yöntemleri içermeyen bir kaynak denetleyicisi oluşturmak için, şimdi yap: denetleyici komutunu yürütürken–API anahtarını kullanabilirsiniz:
php artisan make:controller API/PhotoController --api
Model seri hale getirme geliştirmeleri
Önceki sürümlerinde Laravel, kuyruğa atılmış modelleri kendi yüklü ilişkileri bozulmamış ile geri yüklenemedi. Laravel 5,6, kuyruğa alınmış olduğunda model üzerinde yüklenen ilişkiler otomatik olarak iş kuyruğu tarafından işlendiğinde yeniden yüklenir.
Anlamlı Tarih döküm
Şimdi ayrı olarak anlamlı Tarih cast sütun biçimini özelleştirebilirsiniz. Başlamak için cast bildirimi içinde istediğiniz tarih biçimini belirtin. Bir kez belirtilen, bu biçim bir dizi/JSON modeli seri hale getirilirken kullanılır:
protected $casts = [
'birthday' => 'date:Y-m-d',
'joined_at' => 'datetime:Y-m-d H:00',
];
Blade bileşen takma adları
Blade bileşenleriniz bir alt dizinde depolanıyorsa, artık daha kolay erişim için bunları Alias olabilir. Örneğin, kaynakları/görünümler/bileşenler/Alert. Blade. php saklanan bir blade bileşeni düşünün. Component yöntemini Components bileşeninden Alias için kullanabilirsiniz. Alert ‘e uyarı
Blade::component('components.alert', 'alert');
Bileşen takma ad olduktan sonra bir yönerge kullanarak işleyebilir:
@alert('alert', ['type' => 'danger'])
You are not allowed to access this resource!
@endalert
Ek yuvaları varsa, bileşen parametreleri atlayabilirsiniz:
@alert
You are not allowed to access this resource!
@endalert
Argon2 Parola karması
Eğer PHP 7.2.0 ya da daha büyük bir uygulama oluşturuyorsanız, Laravel artık Argon2 algoritması üzerinden şifre karmasını destekler. Uygulamanız için varsayılan karma sürücüsü yeni bir yapılandırma/karma. php yapılandırma dosyası tarafından denetlenir.
UUID yöntemleri
Laravel 5,6 UUID oluşturmak için iki yeni yöntem tanıtır: Str:: UUID ve Str:: orderedUuid. OrderedUuid yöntemi daha kolay ve verimli MySQL gibi veritabanları tarafından dizine bir zaman damgası ilk UUID üretecektir. Bu yöntemlerin her biri döndürür bir Ramsey\Uuid\Uuid nesne:
use Illuminate\Support\Str;
return (string) Str::uuid();
return (string) Str::orderedUuid();
Çarpışma
Varsayılan Laravel/Laravel uygulaması artık Nuno MN tarafından tutulan çarpışma paketi için bir dev besteci bağımlılığı içerir. Bu paketler, komut satırında Laravel uygulamanızla etkileşimde bulunan güzel hata bildirimi sağlar:
Bootstrap 4
Kimlik doğrulama demirbaşı ve örnek Vue bileşeni gibi tüm ön uç iskeleleri Bootstrap 4 ‘ e yükseltilmiştir. Varsayılan olarak, sayfalandırma bağlantı üretimi de şimdi Bootstrap 4 ‘ e varsayılan olarak ayarlanır.