Bu hafta Laravel ekibi, yeni bir varsayılan istisna sayfası, yıkıcı komutların çalışmasını önlemenin bir yolu, bir withoutDelay()
kuyruk yöntemi ve daha fazlasını içeren v11.9'u yayınladı.
Yeni Varsayılan İstisna Sayfası
Laravel artık uygulamanız hata ayıklama modundayken minimum varsayılan istisna sayfasıyla birlikte geliyor. Güncellenen hata sayfasında açık ve koyu mod desteği bulunuyor:
Hata ayıklama (debug) false
olduğunda İstisna sayfası varsayılan Symfony görünümünü oluşturmaya devam edecektir (özel bir oluşturucu tanımlamadığınız sürece):
Bu güncelleme yalnızca yeni Laravel uygulamalarını etkiler, dolayısıyla mevcut uygulamalar kuruluysa Ignition'ı kullanmaya devam edecektir. Spatie Ignition istisna sayfasını yeni Laravel uygulamalarında kullanmaya devam etmek istiyorsanız bunu Composer ile yükleyebilirsiniz:
composer require spatie/laravel-ignition
Daha fazla ayrıntı için Pull Request #51261 ve #51587'ye bakın.
Yıkıcı Komutları Önleyin
Jason McCreary ve Joel Clermont, yıkıcı komutların çalışmasını engelleyen kodla birlikte bir Prohibitable
(Yasaklanabilir) özelliğine katkıda bulundu. Bunları, bazı ortamlarda (genellikle üretim) çalıştırmak istemediğiniz yıkıcı davranışlara sahip olabilecek özel Artisan komutlarınıza da ekleyebilirsiniz:
use Illuminate\Console\Command;
use Illuminate\Console\Prohibitable;
class SomeDestructiveCommand extends Command
{
use Prohibitable;
}
// SomeDestructiveCommand::prohibit($this->app->isProduction());
Laravel çerçevesi, db:wipe, migrate:fresh, migrate:refresh ve migrate:reset gibi Prohibitable
(Yasaklanabilir) özelliği içeren bazı veritabanı komutlarını içerir:
public function boot(): void
{
FreshCommand::prohibit();
RefreshCommand::prohibit();
ResetCommand::prohibit();
WipeCommand::prohibit();
}
DB
Facade'i kullanarak Laravel'de yerleşik yıkıcı veritabanı komutlarını yasaklayabilirsiniz:
// Prohibits: db:wipe, migrate:fresh, migrate:refresh, and migrate:reset
DB::prohibitDestructiveCommands($this->app->isProduction());
prohibit()
yöntemi, varsayılan olarak true
olan bir Boolean
bağımsız değişkenini kabul eder ve komutların, ihtiyacınız olan mantığı kullanarak çalışmasını koşullu olarak engelleyebilirsiniz, böylece bunları geliştirme ortamlarında çalıştırmaya devam edebilirsiniz:
public function boot(): void
{
YourCommand::prohibit($this->app->isProduction());
}
Queueable
özelliğine withoutDelay()
ekleyin
Kennedy Tedesco, Queueable
özelliğine bir withoutDelay()
yöntemiyle katkıda bulundu. Bir işin varsayılan bir gecikme süresi varsa, delay()
yöntemine 0
iletmek yerine bu gecikmeyi atlamak istediğiniz durumlarda bunu kullanabilirsiniz:
dispatch((new MyJob($data))->delay(0));
dispatch((new MyJob($data))->withoutDelay());
Sürüm notları
Aşağıda yeni özelliklerin ve güncellemelerin tam listesini ve GitHub'da 11.8.0 ile 11.9.0 arasındaki farkı görebilirsiniz. Aşağıdaki sürüm notları doğrudan değişiklik günlüğünden alınmıştır:
#v11.9.0
[11.x] Optimize boostrap time by using hashtable to store providers by @sarven in https://github.com/laravel/framework/pull/51343
[11.x] Prevent destructive commands from running by @jasonmccreary in https://github.com/laravel/framework/pull/51376
[11.x] renamed left has to contains by @MrPunyapal in https://github.com/laravel/framework/pull/51532
[10.x] Fix typo by @Issei0804-ie in https://github.com/laravel/framework/pull/51535
[11.x] Fixes doc block in Timebox.php by @saMahmoudzadeh in https://github.com/laravel/framework/pull/51537
[11.x] Rename test function to match prohibit action by @faissaloux in https://github.com/laravel/framework/pull/51534
[11.x] Fix LazilyRefreshDatabase when using Laravel BrowserKit Testing by @MaxGiting in https://github.com/laravel/framework/pull/51538
[10.x] Fix SQL Server detection in database store by @staudenmeir in https://github.com/laravel/framework/pull/51547
[11.x] Display test creation messages by @nshiro in https://github.com/laravel/framework/pull/51546
[11.x] Detect Cockroach DB connection loss by @saschaglo in https://github.com/laravel/framework/pull/51559
[11.x] Fix type tests by @stayallive in https://github.com/laravel/framework/pull/51558
[11.x] Add withoutDelay() to the Queueable trait by @KennedyTedesco in https://github.com/laravel/framework/pull/51555
[11.x] Add an option to remove the original environment file after encrypting by @riasvdv in https://github.com/laravel/framework/pull/51556
[10.x] - Fix batch list loading in Horizon when serialization error by @jeffortegad in https://github.com/laravel/framework/pull/51551
[10.x] Fixes explicit route binding with BackedEnum by @CAAHS in https://github.com/laravel/framework/pull/51586
[11.x] Add Macroable to PendingCommand by @PerryvanderMeer in https://github.com/laravel/framework/pull/51572
[11.x] Improves errors by @nunomaduro in https://github.com/laravel/framework/pull/51261
[11.x] Add RELEASE.md to .gitattributes by @Jubeki in https://github.com/laravel/framework/pull/51598
[11.x] Fixes exception rendering by @nunomaduro in https://github.com/laravel/framework/pull/51587
Kaynaklar:
A New Minimal Default Exception Page With Dark Mode Support in Laravel 11.9 - https://laravel-news.com/laravel-11-9-0
The Ability to Prevent Destructive Commands From Running is Coming to Laravel 11 - https://laravel-news.com/prevent-destructive-commands-from-running-in-laravel-11
Video Kaynaklar:
NEW in Laravel 11.9: No More migrate:fresh on Production - https://www.youtube.com/watch?v=57XYvNffLec
Laravel gets a new default exception page! - https://www.youtube.com/watch?v=h1JBb0hCZlU