آشنایی با پکیج custom casts در لاراول

گردآوری و تالیف : رضا جمال زاده
تاریخ انتشار : 13 شهریور 1398
دسته بندی ها : لاراول

اگر شما از جمله کسانی هستید که برای توسعه وب سایت خود از فریمورک لاراول استفاده می‌کنید حتما از خصوصیات casts  در مدل خود استفاده کرده‌اید، در واقع casts خصوصیتی در مدل لاراول است که با استفاده از آن می‌توانید نوع داد‌ه‌های مورد نظر خود را تعیین کنید.

به عنوان مثال:

Protectes $casts=[“is_admin”=>”Boolean”]

حال خصوصیت is_admin  همیشه به صورت بولین خواهد‌ بود.

پکیج custom casts  درلاراول به شما اجازه می‌دهد تا انواع castsهای سفارشی خودتان را بسازید ، به عبارت دیگر laravel custom casts مشابه با ویژگی casting  در لاراول کار می‌کند با این تفاوت که منطق(نوع داده) سفارشی در یک کلاس جدا تعریف می‌کنیم. در کنار انواع پیچیده‌ی casts که با استفاده از این پکیج می‌توانیم بسازیم، این پکیج به ما توانایی گوش دادن و واکنش نشان دادن به events های مدل مورد نظر را می‌دهد.

در اینجا یک مثال از مدل user که از casts سفارشی استفاده می‌کند آورده‌ایم:

namespace App;

use App\CustomCasts\NameCast;
use Illuminate\Database\Eloquent\Model;
use Vkovic\LaravelCustomCasts\HasCustomCasts;

class User extends Model
{
    use HasCustomCasts;

    protected $casts = [
        'is_admin' => boolean // <-- Laravel default cast type
        'name' => NameCast::class // <-- Our custom cast class (follow section below)
    ];
}

با در نظر گرفتن مدل بالا نمونه‌ایی از custom casts class :

namespace App\CustomCasts;

use Vkovic\LaravelCustomCasts\CustomCastBase;

class NameCast extends CustomCastBase
{
    public function setAttribute($value)
    {
        return ucwords($value);
    }

    public function castAttribute($value)
    {
        return $this->getTitle() . ' ' . $value;
    }

    protected function getTitle()
    {
        return ['Mr.', 'Mrs.', 'Ms.', 'Miss'][rand(0, 3)];
    }
}

در مثال بالا $value در setAttribute ، داده‌ایی است که می‌خواهیم در دیتابیس ذخیره کنیم.این پکیج همچنین شما را قادر می‌سازد تا رخدادهای مدل را مدیریت کنید و به آن رخداد‌ها واکنش نشان دهید.

 برای کسب اطلاعات بیشتر از مراحل نصب و مشاهدهی مثال های بیشتر به صفحه گیت هاب پکیج مراجعه فرماید. vkovic/laravel-custom-casts

مقالات پیشنهادی

  • ساخت پکیج لاراول 5 - قسمت آخر

    در قسمت نهایی این سری آموزش ها ما می خواهیم یک بخش مهم و نادیده گرفته شده از توسعه ی پکیج ها رو بیان کنیم. تست واحد (Unit Testing) باعث میشه در حالی ک...

    امیررضا سیستانه ای
  • ساخت پکیج لاراول 5 - قسمت سوم

    تا قسمت دوم این سری ما راه اندازی اولیه کار رو برای ساخت چند پکیج انجام دادیم. با این حال اگر پکیج شما پیچیده تر باشه نیاز به فایل پیکربندی برای اون د...

    امیررضا سیستانه ای