لاراول قبل از اینکه درخواست به کنترلر برسه، یه سری کار جالب روی پارامترهای مسیر انجام میده. Route Binding یه قابلیت قدرتمنده که بخشهای خام URL رو به مدلهای Eloquent، Enum، یا مقادیر سفارشی تبدیل میکنه. این مقاله یه دایو عمیقه به این مکانیزم و نشون میده که دقیقاً پشت صحنه چه اتفاقی میافته. اگه همیشه از Route Binding استفاده میکردی ولی نمیدونستی چطور کار میکنه، این مطلب برات جذابه.
Observer و Event Listener هر دو برای «واکنش به اتفاقات» توی لاراول طراحی شدن، ولی هر کدوم جای مشخص خودشون رو دارن. Observer به چرخهی حیات مدلهای Eloquent گره خورده و بدون نیاز به فراخوانی دستی، رویدادهایی مثل created یا deleted رو مدیریت میکنه. Event Listener برای رویدادهای سطح بالاتر اپلیکیشن مثل ثبتنام کاربر یا ثبت سفارش به کار میاد و بهت اجازه میده چند کار مختلف رو بهصورت جداگانه و قابل تست انجام بدی. شناخت تفاوت این دو ابزار کمک میکنه کدت تمیزتر، مقیاسپذیرتر و قابل نگهداریتر بشه.
فلر یه پلتفرم مانیتورینگ فولاستک هست که مخصوص لاراول، PHP و جاوااسکریپت ساخته شده. با فلر میتونی خطاهای پروداکشن رو قبل از اینکه کاربرا باهاشون روبهرو بشن شناسایی و رفع کنی. علاوه بر ردیابی خطا، ابزارهای مانیتورینگ پرفورمنس هم داره که کمک میکنه کوئریهای کند و ریکوئستهای سنگین رو پیدا کنی. فلر با ابزارهایی مثل Slack، GitHub، Jira و Linear هم یکپارچه میشه و حتی از MCP Server برای اتصال به ابزارهای هوش مصنوعی پشتیبانی میکنه.
Route Binding یکی از قابلیتهای لاراوله که خیلی راحت ازش استفاده میکنیم، ولی کمتر پیش میاد بدونیم دقیقاً پشت صحنه چی میگذره. وقتی یه مسیر مثل /users/{user} تعریف میکنی و User $user رو در کنترلر type-hint میزنی، لاراول بهصورت خودکار مدل رو برات میآره. این اتفاق نه توی کنترلر، بلکه خیلی زودتر و در لایهی میانافزار SubstituteBindings رخ میده. این مقاله کل مسیر از URI خام تا تحویل مدل به کنترلر رو مرحلهبهمرحله توضیح میده و نشون میده explicit binding و implicit binding هر کدوم چه مسیری رو طی
Spatie در ۳۰ مارس ابزار جدیدی به اسم Scotty معرفی کرد که جایگزینی برای Laravel Envoy محسوب میشه. Scotty به جای فرمت Blade از سینتکس خالص bash استفاده میکنه و خروجی ترمینال بهمراتب بهتری داره. اگه روی سرورهای شخصی مثل DigitalOcean یا Hetzner دیپلوی میکنی، این ابزار یه ارتقای واقعی محسوب میشه. Scotty امکاناتی مثل جدول خلاصهی زمانبندی، pause/resume حین دیپلوی، دستور doctor برای بررسی پیشاز-دیپلوی، و حالت --pretend رو هم داره.
اگه توی Laravel Forge از SQLite استفاده میکنی و zero-downtime deployment داری، احتمالاً با یه مشکل جدی روبرویی: هر بار که دیپلوی میکنی، کل دیتابیست پاک میشه! دلیلش اینه که Forge هر ریلیز رو توی یه پوشه جداگانه میریزه و یه symlink رو جابهجا میکنه. چون فایل database.sqlite داخل پوشه ریلیز قرار داره، با هر دیپلوی از دسترس خارج میشه. راهحل اینه که فایل دیتابیس رو به داخل storage/ منتقل کنی؛ چون این پوشه از قبل بهعنوان shared path توسط Forge مدیریت میشه و بین ریلیزها پایدار میمونه.
چند ماه پیش یه آسیبپذیری RCE بحرانی توی Livewire v3 کشف شد که به مهاجمان ناشناس اجازه میداد کد دلخواه اجرا کنن. مشکل اصلی اینه که بین انتشار پچ و دیپلوی شدنش روی سرور، یه فاصله خطرناک وجود داره. با ترکیب پکیج spatie/laravel-health و سرویس Oh Dear میشه این فاصله رو به حداقل رسوند؛ بهطوری که هر دقیقه یهبار وضعیت پکیجهای نصبشده روی سرور چک میشه و اگه آسیبپذیری شناختهشدهای پیدا شد، فوری اعلان میرسه. این روش برعکس Dependabot که فقط ریپو رو اسکن میکنه، مستقیماً سرور پروداکشن رو زیر نظر دا
وقتی کاربر یه سبد خرید با چند آیتم ارسال میکنه، اعتبارسنجی هر product_id با Rule::exists بهصورت پیشفرض باعث N+1 کوئری میشه؛ یعنی برای هر آیتم یه SELECT جداگانه اجرا میشه. لاراول یه راهحل تمیز داره: دادههای موردنیاز رو قبل از اجرای rules() در متد prepareForValidation() با یه کوئری واحد prefetch کن و بعد هر آیتم رو در حافظه چک کن. اینطوری هم N+1 حذف میشه و هم پیغام خطا دقیقاً روی همون فیلد خاص (مثلاً items.2.product_id) نشون داده میشه.
ایدمپوتنسی یه مفهوم کلیدی در طراحی APIهاست که تضمین میکنه اگه یه درخواست چند بار فرستاده بشه، نتیجهاش همیشه یکیه. این ویژگی بهخصوص وقتی شبکه قطع میشه یا کلاینت درخواست رو retry میکنه، از ایجاد دادههای تکراری یا عملیات ناخواسته جلوگیری میکنه. مقالهی Wendell Adriel از تئوری پشت این مفهوم شروع میکنه و تا پیادهسازی عملیش با پکیج Laravel Idempotency پیش میره.
TypeScript Transformer 3 بعد از سه سال بازنویسی کامل منتشر شد. این پکیج محبوب PHP حالا به یک فریمورک واقعی برای ایجاد پل بین PHP و TypeScript تبدیل شده. مهمترین تغییرات شامل حذف Collector ها، معرفی سیستم AST، پشتیبانی از PHPStan، و اضافه شدن حالت watch برای رصد تغییرات لحظهای فایلهاست. این نسخه توسعهپذیری را به شکل چشمگیری بهبود داده و امکانات خیلی بیشتری نسبت به نسخههای قبلی ارائه میده.
یه روش هوشمندانه برای کاهش چشمگیر زمان اجرای تستهای PHP روی GitHub Actions اینه که تستسوییت رو به چند بخش مساوی تقسیم کنی و هر بخش رو روی یه job جداگانه اجرا کنی. تیم Oh Dear با همین تکنیک، زمان اجرای تستهاشون رو از ۱۶ دقیقه به فقط ۴ دقیقه رسوندن. این کار با استفاده از matrix strategy در GitHub Actions و یه اسکریپت PHP سفارشی انجام میشه که تستها رو با گزینه --filter به صورت موازی اجرا میکنه. ابزار Pest هم با آپشن --list-tests این امکان رو میده که لیست کامل تستها رو بگیری و به قطعههای مس
تیم Spatie یه پکیج جدید به اسم spatie/guidelines-skills منتشر کرده که استانداردهای کدنویسی این تیم رو به دستیارهای هوش مصنوعی مثل Claude Code، Cursor، Codex و GitHub Copilot یاد میده. این پکیج از اکوسیستم skills.sh استفاده میکنه و دیگه مثل نسخه قبلیش محدود به Laravel Boost نیست. چهار مجموعه مهارت برای PHP/Laravel، جاوااسکریپت، version control و امنیت توی این پکیج گنجونده شده. با این ابزار، AI دیگه کدی که با قراردادهای تیم مغایرت داشته باشه تولید نمیکنه.
اسپاتی یه پکیج جدید برای لاراول منتشر کرده به اسم Laravel Mobile Pass که باهاش میتونی پاسهای Apple Wallet و Google Wallet رو مستقیم از اپ لاراولت بسازی و مدیریت کنی. از بلیت پرواز و کنسرت گرفته تا کارت وفاداری و عضویت باشگاه، همه چیز با یه API روان و فلوئنت قابل ساختنه. جالبترین قابلیتش اینه که میتونی پاسهای از قبل صادرشده رو هم آپدیت کنی و تغییرات رو بلادرنگ روی گوشی کاربر نشون بدی، بدون اینکه کاربر کاری بکنه. پکیج هم از Apple APNs پشتیبانی میکنه هم از Google Wallet callback.
استیو مکدوگال یه skill برای Claude Code منتشر کرده که تمام کانونشنهای موردعلاقهاش برای ساخت REST API در لاراول ۱۳+ رو بهصورت خودکار اعمال میکنه. با یه بار نصب، دیگه لازم نیست هر بار به هوش مصنوعی بگی چه الگویی دوست داری؛ skill خودش همه چیز رو سر جاش نگه میداره. این ابزار قراردادهایی مثل استفاده از ULID بهجای ID اتوایکریمنت، پیروی از RFC 9457 برای خطاها، و کنترلرهای single-action رو بهصورت پیشفرض اجرا میکنه.
لاراول داره یه استارتر کیت اختصاصی برای APIها آماده میکنه. وندل، یکی از اعضای تیم لاراول، تو لایو استریم تأیید کرد که روی این قابلیت کار میکنه و دو پولریکوئست هم توی ریپوی Maestro باز شده. یکی از این PRها یه استارتر کیت API پایه با احراز هویت stateless میده و دیگری پشتیبانی از Teams رو اضافه میکنه. تاریخ انتشار هنوز مشخص نیست، ولی پروژه جدیه و داره پیش میره.
یه مشکل رایج در اپلیکیشنهای واقعی اینه که همه چیز کار میکنه، ولی سرعت اونطوری که باید نیست. معمولاً ریشه این مشکل توی کوئریهای پایگاه دادهست؛ ایندکس نداره، یا یه aggregation سنگین داره بدون اطلاع اجرا میشه. این مقاله یه سیستم مانیتورینگ سبک برای لاراول و MongoDB میسازه که کوئریهای کند رو بهصورت خودکار شناسایی و لاگ میکنه. با ترکیب یه Middleware سفارشی و یه MongoDB Command Subscriber، میشه دقیقاً فهمید کدوم کوئری چقدر طول کشیده و چرا.
لاراول ۱۳.۶ با یه ویژگی جذاب اومده: جابهای صفبندی حالا میتونن Debounce بشن. یعنی اگه یه جاب چند بار در یه بازه زمانی dispatch بشه، فقط آخرین اجرا انجام میشه و بقیه نادیده گرفته میشن. علاوه بر این، مسیر health اپلیکیشن حالا JSON برمیگردونه، یه فرمتدهنده JSON جدید برای لاگگیری اضافه شده، و پشتیبانی از سرویس ایمیل Cloudflare هم به لاراول اضافه شده. این نسخه چند بهبود داخلی و رفع باگ هم داره.
PHPverse 2026 در تاریخ ۹ ژوئن (۱۹ خرداد) به صورت کاملاً رایگان و آنلاین برگزار میشه. این رویداد که توسط JetBrains برپا میشه، از ساعت ۱۱ تا ۱۷:۵۰ UTC ادامه داره و سخنرانهایی از بزرگترین نامهای دنیای PHP رو کنار هم جمع کرده. سال گذشته بیش از ۵۵ هزار توسعهدهنده این رویداد رو دنبال کردن و امسال هم برنامه پرمحتوایی در نظر گرفته شده. جلسات روی یوتیوب پخش میشن و میتونی بعداً هم ویدیوها رو ببینی.
پکیج جدید Laravel Mobile Pass از Spatie امکان ساخت پاسهای دیجیتال برای Apple Wallet و Google Wallet رو مستقیماً توی لاراول فراهم میکنه. با یه API یکپارچه میشه انواع پاس مثل بلیت رویداد، کارت پرواز، کوپن، کارت عضویت و کارت هدیه رو ساخت. یکی از قابلیتهای جالبش اینه که بعد از نصب پاس روی گوشی کاربر، میتونی اطلاعاتش رو بهصورت زنده آپدیت کنی و نوتیفیکیشن بفرستی.
وقتی یه ایجنت هوش مصنوعی به پایگاه دانش واقعی دسترسی نداشته باشه، جوابها رو از پیش خودش میسازه — و این خطرناکه. تو این قسمت از سری «Ship AI with Laravel»، یه knowledge base قابل جستجو با معنا به ایجنت اضافه میشه. با استفاده از pgvector و مدلهای embedding، متنها به وکتور تبدیل میشن و جستجوی معنایی ممکن میشه. حالا حتی اگه کاربر با کلمات کاملاً متفاوتی سوال بپرسه، ایجنت جواب درست رو از مستندات واقعی پیدا میکنه.