لاراول 12.2 با قابلیت نصب کیت‌های استارتر سفارشی منتشر شد

تیم لاراول نسخه 12.2.0 را منتشر کرد که شامل ویژگی‌های جدیدی مانند متد ddBody() برای تست، پشتیبانی از مدل منفرد در رابطه HasManyThrough، متدهای increment و decrement در Context و تغییرات دیگر است.

پشتیبانی از کیت‌های استارتر سفارشی در laravel new

علاوه بر امکان نصب پروژه با یکی از کیت‌های استارتر رسمی لاراول، از این پس می‌توانید با دستور laravel new یک کیت استارتر کامینیتی (Community Starter Kit) را نیز نصب کنید:

laravel new --using statamic/statamic my-statamic-app  
laravel new --using tnylea/filamentapp my-filament-app

اگر به دنبال لیستی از کیت‌های استارتر کامینیتی هستید، Tony Lea پروژه‌ای به نام tnylea/laravel-new ایجاد کرده که شامل لیستی از کیت‌های قابل نصب با این روش است. البته قبل از استفاده، بررسی دقیق کدهای منبع این کیت‌ها توصیه می‌شود.

معرفی متد ddBody() در TestResponse

Sam Carré متدی به نام ddBody() را به کلاس TestResponse اضافه کرده که امکان مشاهده آسان بدنه پاسخ در حین تست را فراهم می‌کند:

$response = $this->get('/example');  
$response->ddBody(); // نمایش کل بدنه پاسخ  

// نمایش مقدار یک کلید مشخص در JSON  
$response->ddBody('title'); // عملکرد مشابه ddJson('title')

پشتیبانی از CanBeOneOfMany در HasOneThrough

Caleb White قابلیت CanBeOneOfMany را به HasOneThrough اضافه کرده که امکان بازیابی یک مدل منفرد از یک رابطه HasManyThrough را فراهم می‌کند:

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
 
class Application extends Model
{
    /**
     * دریافت جدیدترین استقرار (Deployment) برای اپلیکیشن.
     */
    public function latestDeployment(): HasOneThrough
    {
        return $this->deployments()->one()->latestOfMany();
    }
}

متدهای Increment و Decrement در Context

@mattmcdev دو متد جدید increment و decrement را به Context اضافه کرده که مدیریت شمارنده‌ها را آسان‌تر می‌کند:

Context::increment('uploads'); // مقدار: 1  
Context::increment('uploads'); // مقدار: 2  
Context::increment('uploads', 5); // مقدار: 7

🔹 با این به‌روزرسانی، لاراول امکانات بیشتری برای توسعه‌دهندگان فراهم کرده و تجربه کار با این فریمورک را ساده‌تر و قدرتمندتر از قبل می‌کند.

🔗 برای جزئیات بیشتر، به مخزن رسمی لاراول مراجعه کنید.