رفتن به محتوا

لاراول 13 منتشر شد؛ قابلیت‌های جدید، تغییرات مهم و آموزش ارتقا

لاراول 13 با SDK رسمی هوش مصنوعی، جستجوی برداری و PHP 8.3 منتشر شده است. قابلیت‌های جدید، جدول پشتیبانی، تغییرات ناسازگار و مراحل ارتقا از Laravel 12 را بخوانید.

میلاد مصطفایی ۹ دقیقه مطالعه به‌روزرسانی: ۲۷ شهریور ۱۴۰۵
لوگوی لاراول 13 کنار ویرایشگر کد PHP و نمودار مراحل ارتقا
فهرست مطالب
  1. تاریخ انتشار و حداقل نسخهٔ PHP
  2. سیاست پشتیبانی Laravel 11، 12 و 13
  3. مهم‌ترین قابلیت‌های جدید Laravel 13
  4. Laravel AI SDK
  5. جستجوی معنایی و برداری
  6. PHP Attributes در بخش‌های بیشتر
  7. Queue Routing و Cache::touch
  8. JSON:API Resources و محافظت از جعل درخواست
  9. تغییرات ناسازگار (Breaking Changes)
  10. راهنمای ارتقا از Laravel 12 به Laravel 13
  11. به‌روزرسانی‌های اکوسیستم
  12. نکته‌های مهم برای توسعه‌دهندگان ایرانی
  13. دسترسی به Composer و Packagist
  14. نسخهٔ PHP هاست اشتراکی
  15. سرویس‌های هوش مصنوعی
  16. سؤالات متداول
  17. لاراول 13 چه زمانی منتشر شد؟
  18. لاراول 13 به چه نسخه‌ای از PHP نیاز دارد؟
  19. ارتقا از Laravel 12 به 13 چقدر زمان می‌برد؟
  20. آیا Filament با Laravel 13 سازگار است؟
  21. آیا باید همین حالا از Laravel 12 ارتقا بدهم؟
  22. جمع‌بندی

لاراول 13 (Laravel 13) روز ۲۶ اسفند ۱۴۰۴ (۱۷ مارس ۲۰۲۶) منتشر شد و حالا چند ماه است که نسخهٔ اصلی این فریم‌ورک محبوب PHP به حساب می‌آید. تیم لاراول در این نسخه دو هدف را دنبال کرده است: ابزارهای رسمی برای ساخت اپلیکیشن‌های مبتنی بر هوش مصنوعی و کم‌کردن تغییرات ناسازگار. نتیجه نسخه‌ای است که به گفتهٔ مستندات رسمی، ارتقا به آن از Laravel 12 حدود ۱۰ دقیقه زمان می‌برد.

در این مقاله می‌خوانید Laravel 13 به چه نسخه‌ای از PHP نیاز دارد، تا کی پشتیبانی می‌شود، مهم‌ترین قابلیت‌هایش چیست و کدام تغییرات ممکن است پروژهٔ شما را بشکنند. در ادامه، مراحل ارتقا از Laravel 12 را قدم‌به‌قدم مرور می‌کنیم و به مشکلات رایج توسعه‌دهندگان ایرانی، مثل دسترسی به Composer و نسخهٔ PHP هاست‌های اشتراکی، هم می‌پردازیم.

تاریخ انتشار و حداقل نسخهٔ PHP

Laravel 13 در ۱۷ مارس ۲۰۲۶ منتشر شد. طبق سیاست لاراول، هر نسخهٔ اصلی تقریباً سالی یک بار عرضه می‌شود و این نسخه هم در همان بازهٔ مورد انتظار یعنی سه‌ماههٔ اول ۲۰۲۶ آمد.

مهم‌ترین شرط نصب، PHP 8.3 یا بالاتر است. نسخه‌های 8.3، 8.4 و 8.5 رسماً پشتیبانی می‌شوند. پس اگر پروژهٔ Laravel 12 شما هنوز روی PHP 8.2 اجرا می‌شود، اول باید PHP را به‌روز کنید. من سایت شخصی خودم را روی Laravel 13 با PHP 8.4 و Filament 5 اجرا می‌کنم و تا امروز مشکل خاصی از بابت سازگاری نداشته‌ام.

سیاست پشتیبانی Laravel 11، 12 و 13

لاراول برای هر نسخهٔ اصلی ۱۸ ماه رفع باگ و ۲ سال به‌روزرسانی امنیتی ارائه می‌کند. جدول زیر بر اساس مستندات رسمی laravel.com تنظیم شده است:

نسخهنسخه‌های PHPتاریخ انتشاررفع باگ تابه‌روزرسانی امنیتی تا
Laravel 118.2 تا 8.412 مارس 20243 سپتامبر 202512 مارس 2026
Laravel 128.2 تا 8.524 فوریه 202513 آگوست 202624 فوریه 2027
Laravel 138.3 تا 8.517 مارس 2026سه‌ماههٔ سوم 202717 مارس 2028

نکتهٔ مهم: پشتیبانی امنیتی Laravel 11 تمام شده و دورهٔ رفع باگ Laravel 12 هم از مرداد ۱۴۰۵ به پایان رسیده است. Laravel 12 تا اسفند ۱۴۰۵ فقط وصلهٔ امنیتی می‌گیرد، پس الان زمان خوبی برای برنامه‌ریزی ارتقاست.

مهم‌ترین قابلیت‌های جدید Laravel 13

Laravel AI SDK

بزرگ‌ترین خبر این نسخه، SDK رسمی هوش مصنوعی است. این پکیج یک API یکپارچه برای تولید متن، ایجنت‌های دارای ابزار، embedding، صدا و تصویر فراهم می‌کند و از ارائه‌دهنده‌هایی مثل OpenAI، Anthropic، Gemini، Mistral و Ollama پشتیبانی می‌کند. نصب با composer require laravel/ai انجام می‌شود و ایجنت را با php artisan make:agent SalesCoach می‌سازید:

use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analyze this sales transcript...');

return (string) $response;

جستجوی معنایی و برداری

کوئری‌بیلدر حالا متد whereVectorSimilarTo دارد. اگر به‌جای بردار یک رشتهٔ ساده بدهید، لاراول با کمک AI SDK خودش embedding را می‌سازد. این قابلیت فعلاً روی PostgreSQL با افزونهٔ pgvector و MariaDB 11.7 و بالاتر کار می‌کند:

$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
    ->limit(10)
    ->get();

PHP Attributes در بخش‌های بیشتر

Laravel 13 در بیش از ۱۵ بخش از فریم‌ورک از PHP Attributes پشتیبانی می‌کند؛ از جمله کنترلرها، مدل‌ها، جاب‌ها و کامندها. این قابلیت اختیاری است و روش قبلی مبتنی بر property همچنان کار می‌کند. برای جاب‌ها هم attributeهایی مثل #[Tries]، #[Backoff] و #[Timeout] اضافه شده است:

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}

Queue Routing و Cache::touch

با Queue::route می‌توانید اتصال و صف پیش‌فرض هر جاب را در یک نقطه تعیین کنید. متد Cache::touch هم عمر (TTL) یک آیتم کش را بدون خواندن و ذخیرهٔ دوباره تمدید می‌کند:

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');

Cache::touch('key', 3600);

JSON:API Resources و محافظت از جعل درخواست

لاراول حالا Resourceهای رسمی مطابق استاندارد JSON:API دارد و دیگر برای این کار به پکیج جانبی نیازی نیست. میدل‌ور CSRF هم با نام تازهٔ PreventRequestForgery مبدأ درخواست را با هدر Sec-Fetch-Site بررسی می‌کند.

تغییرات ناسازگار (Breaking Changes)

راهنمای رسمی ارتقا تغییرات را بر اساس احتمال اثرگذاری دسته‌بندی کرده است. مهم‌ترین موارد:

  • اثر زیاد: میدل‌ور VerifyCsrfToken به PreventRequestForgery تغییر نام داده است. نام‌های قبلی به‌صورت alias منسوخ باقی مانده‌اند، ولی بهتر است ارجاع‌ها را اصلاح کنید.

  • اثر متوسط: گزینهٔ جدید serializable_classes در تنظیمات کش به‌طور پیش‌فرض false است. اگر اشیای PHP را در کش ذخیره می‌کنید، باید کلاس‌های مجاز را صریحاً فهرست کنید.

  • اثر متوسط: متد upsert در MySQL و MariaDB حالا با مقدار خالی uniqueBy خطای InvalidArgumentException می‌دهد.

  • اثر کم: پیشوند پیش‌فرض کش و Redis و نام کوکی سشن به‌جای underscore از خط تیره استفاده می‌کند. اگر این مقادیر را در .env تعیین نکرده باشید، کش قبلی نادیده گرفته می‌شود.

  • اثر کم: نام ویوهای صفحه‌بندی Bootstrap 3 صریح شده‌اند (pagination::bootstrap-3) و در رویداد QueueBusy ویژگی $connection به $connectionName تغییر نام داده است.

راهنمای ارتقا از Laravel 12 به Laravel 13

  1. یک branch جدید در Git بسازید و از دیتابیس نسخهٔ پشتیبان بگیرید.

  2. با php -v مطمئن شوید PHP روی سیستم خودتان و روی سرور 8.3 یا بالاتر است.

  3. وابستگی‌های composer.json را به‌روز کنید:

    "laravel/framework": "^13.0",
    "laravel/boost": "^2.0",
    "laravel/tinker": "^3.0",
    "phpunit/phpunit": "^12.0",
    "pestphp/pest": "^4.0"
  4. دستور composer update را اجرا کنید و هر پکیج جانبی را که هنوز Laravel 13 را پشتیبانی نمی‌کند، به‌روز یا جایگزین کنید.

  5. فهرست تغییرات ناسازگار را مرور کنید؛ به‌خصوص CSRF، تنظیمات کش و پیشوندهای کش و سشن.

  6. اگر وقت کمی دارید، از Laravel Shift استفاده کنید. این سرویس جامعه‌محور ارتقا را خودکار می‌کند و یک Pull Request با commitهای تفکیک‌شده تحویل می‌دهد. Laravel Boost نسخهٔ 2 هم دستور /upgrade-laravel-v13 را برای ایجنت‌های کدنویسی مثل Claude Code و Cursor دارد.

  7. تست‌ها را با php artisan test اجرا کنید و بعد از سبز شدن همه، ابتدا روی محیط staging منتشر کنید.

به‌روزرسانی‌های اکوسیستم

  • Starter Kitها: کیت‌های React، Vue، Svelte و Livewire با Laravel 13 و Inertia v3 عرضه می‌شوند و می‌توانند از روز اول با مدیریت تیم (Teams) ساخته شوند. احراز هویت با Laravel Fortify و ورود دومرحله‌ای به‌صورت پیش‌فرض فعال است.

  • Laravel Boost: یک سرور MCP است که به ایجنت‌های هوش مصنوعی اطلاعات دقیق دربارهٔ ساختار پروژه، دیتابیس و مستندات هر نسخه می‌دهد. نصب با composer require laravel/boost --dev و سپس php artisan boost:install انجام می‌شود.

  • Filament: Filament 5 (نسخه‌های 5.8 به بعد) در وابستگی‌های خود Laravel 13 را پذیرفته است و با Livewire 4 کار می‌کند.

نکته‌های مهم برای توسعه‌دهندگان ایرانی

دسترسی به Composer و Packagist

دانلود پکیج‌ها از packagist.org و GitHub گاهی از داخل ایران کند است یا قطع می‌شود. برای همین چند میرور Packagist در دسترس است که فهرست پکیج‌ها و فایل‌ها را کش می‌کنند. آن‌ها را با تنظیم repos.packagist در Composer معرفی می‌کنید. قبل از استفاده از هر میرور غیررسمی، اعتبار گرداننده‌اش را بسنجید و فایل composer.lock را در مخزن نگه دارید تا نسخه‌ها و hashها کنترل شوند.

نسخهٔ PHP هاست اشتراکی

بسیاری از هاست‌های اشتراکی ایرانی با cPanel یا DirectAdmin چند نسخهٔ PHP را از طریق ابزاری مثل «Select PHP Version» ارائه می‌کنند، اما نسخهٔ پیش‌فرض گاهی قدیمی‌تر از 8.3 است. قبل از ارتقا، نسخهٔ PHP هاست را در پنل یا با phpinfo() بررسی کنید و اگر 8.3 وجود ندارد، از پشتیبانی بخواهید یا به VPS مهاجرت کنید. دستور composer check-platform-reqs هم نشان می‌دهد سرور همهٔ نیازمندی‌ها را دارد یا نه.

سرویس‌های هوش مصنوعی

بعضی ارائه‌دهنده‌های هوش مصنوعی به دلیل تحریم، ایران را در فهرست کشورهای پشتیبانی‌شده ندارند. خود AI SDK متن‌باز است، اما استفاده از آن به قوانین و دسترسی ارائه‌دهندهٔ انتخابی بستگی دارد. مدل‌های محلی مثل Ollama گزینه‌ای برای تست روی سیستم شخصی هستند.

سؤالات متداول

لاراول 13 چه زمانی منتشر شد؟

Laravel 13 روز ۱۷ مارس ۲۰۲۶ (۲۶ اسفند ۱۴۰۴) منتشر شد.

لاراول 13 به چه نسخه‌ای از PHP نیاز دارد؟

حداقل PHP 8.3. نسخه‌های 8.3، 8.4 و 8.5 پشتیبانی می‌شوند.

ارتقا از Laravel 12 به 13 چقدر زمان می‌برد؟

مستندات رسمی زمان تقریبی را ۱۰ دقیقه اعلام کرده است. در پروژه‌های بزرگ با پکیج‌های زیاد، بررسی وابستگی‌ها و تست‌ها ممکن است بیشتر طول بکشد.

آیا Filament با Laravel 13 سازگار است؟

بله. Filament 5 در نسخه‌های اخیرش Laravel 13 را پشتیبانی می‌کند و خودم آن را روی یک پروژهٔ واقعی استفاده می‌کنم.

آیا باید همین حالا از Laravel 12 ارتقا بدهم؟

دورهٔ رفع باگ Laravel 12 تمام شده و فقط تا ۲۴ فوریه ۲۰۲۷ وصلهٔ امنیتی می‌گیرد. چون ارتقا ساده است، بهتر است آن را در برنامهٔ چند هفتهٔ آینده قرار دهید.

جمع‌بندی

Laravel 13 نسخه‌ای کم‌دردسر و در عین حال پربار است: SDK رسمی هوش مصنوعی، جستجوی برداری، Attributeهای بیشتر و JSON:API داخلی، همراه با تعداد کمی تغییر ناسازگار. اگر PHP سرورتان 8.3 یا بالاتر است و تست خوبی دارید، ارتقا از Laravel 12 کار یک عصر است. توسعه‌دهندگان ایرانی فقط باید از قبل به دسترسی Composer و نسخهٔ PHP هاست فکر کنند.

منابع: Release Notes و Upgrade Guide رسمی laravel.com، وبلاگ Laravel (March Product Updates)، Laravel News و Packagist/GitHub (مارس تا سپتامبر ۲۰۲۶).

اشتراک‌گذاری: X Telegram LinkedIn WhatsApp

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده. اولین نفر باشید!

دیدگاه خود را بنویسید