لاراول ۱۳.۲۳ با درایور لاگ ماهانه اومد
خلاصهٔ کاملتر
لاراول ۱۳.۲۳.۰ در ۲۷ ژوئیه ۲۰۲۶ منتشر شد و به نوشته Laravel News، مهمترین اضافهشدهش درایور لاگ تازهی monthly هست که بهجای هر روز، برای هر ماه تقویمی یه فایل میسازه: laravel-2026-07.log، laravel-2026-08.log و همینطور جلو. منطقش سادهست؛ درایور daily برای اپهایی خوبه که اونقدر لاگ تولید میکنن که یه فایل روزانه پر بشه، ولی اپهای کوچیکتر آخرش یه پوشه پر از فایل تقریباً خالی تحویل میگیرن. monthly دقیقاً بین single و daily میشینه:
'monthly' => [
'driver' => 'monthly',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'max_files' => 3,
],هر دو درایور چرخشی حالا از یه متد مشترک createRotatingDriver() روی LogManager استفاده میکنن و فقط تو فرمت تاریخ Monolog (FILE_PER_DAY در برابر FILE_PER_MONTH) و پیشفرض نگهداری فرق دارن: ۱۴ فایل برای daily و ۳ فایل برای monthly. کلید تنظیمات هم جدید شده؛ کانال daily اول max_files رو میخونه و بعد به کلید قدیمی days برمیگرده، پس تنظیمات فعلی و متغیر محیطی LOG_DAILY_DAYS بدون تغییر کار میکنن.
ترنسپورت SES v2 هم حالا هدر X-SES-TENANT-NAME رو از خود پیام میخونه و بهعنوان پارامتر TenantName به SDK پاس میده. tenantهای آمازون SES اعتبار ارسال و تنظیمات گروههای مختلف فرستنده رو از هم جدا نگه میدارن و تا قبل از این فقط میشد یه tenant برای کل اپلیکیشن تعریف کرد؛ حالا انتخابش بهازای هر پیام ممکنه. اگه هدر نباشه، رفتار دقیقاً مثل قبله.
تو مهاجرتها هم PostgreSQL دیگه سر تغییر نوع ستون گیر نمیده. پستگرس بدون کست صریح حاضر نیست نوع یه ستون رو به نوع ناسازگار تغییر بده و چون راهی برای دادن اون کست از طریق schema builder وجود نداشت، مهاجرتهایی که برای MySQL یا SQLite نوشته شده بودن روی پستگرس شکست میخوردن. حالا تعریف ستونها کلاز using() رو قبول میکنن؛ این کلاز فقط روی PostgreSQL اثر داره و بقیه گرامرها نادیدهش میگیرن:
$table->date('name')->using('name::date')->change();از تغییرات دیگه، مقایسهی رمز عبور دور زدن حالت تعمیر همهجا به hash_equals() منتقل شده — تغییری از جنس دفاع در عمق، نه رفع یه باگ قابل سوءاستفاده — و گارد isset() در میدلور با is_string() عوض شده تا مقدار غیررشتهای کوکی TypeError نده. مبدل تایمزون schedule:list هم بازنویسی شده و اینبار بازهها، گامها و وایلدکاردها، آفستهای کسری مثل UTC+5:45 و تغییرات ساعت تابستانی رو درست هندل میکنه.
نکات کلیدی:
- درایور و کانال جدید monthly: یه فایل لاگ برای هر ماه تقویمی، پیشفرض نگهداری ۳ فایل
- کلید max_files جای days رو میگیره، ولی تنظیمات قدیمی همچنان کار میکنن
- هدر X-SES-TENANT-NAME برای انتخاب tenant بهازای هر پیام در SES v2
- کلاز using() روی change() برای کست صریح نوع ستون در PostgreSQL
- مقایسهی timing-safe رمز عبور حالت تعمیر با hash_equals()
- بازنویسی مبدل تایمزون schedule:list با پشتیبانی از بازه، گام و DST




