آموزش ساخت Facade در لاراول

آموزش ساخت Facade در لاراول

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

 

فساد (Facade) چیست؟

فساد ها یک سری کلاس هستند که کلاس های پیچیده تبدیل به یک رابط کاربری ساده میکنند. ما از فساد در زمانی که دسترسی به یک کلاس سخت یا کلاسی هایی که بخوایم بدون ساخت آبجکت دسترسی داشته باشیم، استفاده میکنیم.

 

مثال ساده از فساد ها

خب توی لاراول دیدید که یک سری کلاس مثل Cache داریم که بدون استفاده از ساخت آبجکت میتونیم به متد ها اون دسترسی داشته باشیم. دقیقا این نوع کلاس ها فساد هستند اما بریم یک مثال ببینیم تا بهتر متوجه بشیم:

use IlluminateSupportFacadesCache;

Cache::get('key');

در این مثال میبینید که بدون ساخت آبجکت تونستیم به متد یک کلاس دسترسی داشته باشیم به صورت Static.

 

فساد های موجود در لاراول

ما در لاراول فساد های مختلفی داریم که یک سری از آنها در لیست زیر میبینید اما اگر بخواهید تمامی آنها ببینید میتونید از این لینک اقدام کنید:

Facade Class Service Container Binding
App IlluminateFoundationApplication app
Artisan IlluminateContractsConsoleKernel artisan
Auth IlluminateAuthAuthManager auth
Auth (Instance) IlluminateContractsAuthGuard auth.driver
Blade IlluminateViewCompilersBladeCompiler blade.compiler

 

روش ساخت فساد در لاراول

مبحث اصلی این مقاله "روش ساخت فساد در لاراول" هست، خب ابتدا یک کلاس به نام Milwad میسازیم:

class Milwad
{
public function echo(): string
{
return 'Milwad Dev';
}
}

خب ما اگه بخوایم متد echo این کلاس صدا بزنیم باید یک آبجکت بسازیم اما بریم کاری کنیم که بدون ساخت آبجکت بهش دسترسی داشته باشیم.

در مرحله اول ما نیاز داریم که یک کلاس برای فساد درست کنیم، من اسمش رو MilwadFacade گذاشتم:

class MilwadFacade
{
//
}

حالا نیاز داریم که این کلاس ساده تبدیل به فساد کنیم با استفاده از کلاسی به نام Facade:

class MilwadFacade extends Facade
{
//
}

حالا زمانی که ما از کلاس Facade اکستند کردیم نیاز هست متدی به نام getFacadeAccessor پیاده کنیم:

class MilwadFacade extends Facade
{
/**
* Get the registered name of the component.
*/
protected static function getFacadeAccessor(): string
{
return 'milwad-facade';
}
}

این متد یک رشته برمگیردونه که مثل یک اسم میمونه و باید غیر تکراری باشه.

حالا ما نیاز داریم کلاس فساد خودمون به کلاس اصلی وصل کنیم که این کار با استفاده از سرویس کانتینر انجام میدیم:

$this->app->bind('milwad-facade', function (Application $app) {
return new Milwad();
});

دقت کنید که اسم بایند رو درست بنویسید.

اگه با bind کردن در سرویس کانتینر آشنایی ندارید میتونید مقاله ما را در پرامگ بخونید.

 

منبع آموزشی برای فساد ها در لاراول

اگر دوست دارید کار با فساد ها در محیط ویدیو ببینید میتونید ویدیو "استفاده از Facade + دیزاین پترن Facade" در دوره "آموزش تخصصی پکیج نویسی در لاراول + پروژه محور" ببینید.

0 نظر

برای ارسال نظر ابتدا ثبت نام یا ورود کنید 😉