سلام
من با یه مفهمومی توی لاراول آشنا شدم به نام فساد که معنای فارسیش میشه "نما"
اول فک میکردم که همون Static توی oop هستش ولی بعدش متوجه شدم که اینطور نیست
برای درک بیشتر هسته میخوام بدونم کلا چجوری تعریف میشه و چرا لاراول ازش استفاده میکنه
ممنون میشم راهنمایی کنید
سوال بسیار خوبیه
و برای توضیحش هم درک خوبی از کارکرد قسمت های دیگه لاراول لازمه..
لاراول از ابزاری بهره میبره به نام IoC Container
که بهش Service Container هم میگند.
قسمت های مختلف (کلاس ها و غیره) فریمورک میتونند با یک نام یا Alias درون container قرار بگیرند..
و اینجوری که شما میتونید با استفاده از هلپر app اون کلاس رو از container بگیرید و متدهاش رو اجرا کنید
مثلا اگر از دستور زیر استفاده کنی
app('db')
نمونه یا اینستنسی از کلاس زیر رو دریافت میکنی
Illuminate\Database\DatabaseManager
لاراول در حین بوت شدن کلید db رو داخل کانتینر bind میکنه و به این خاطره که در دسترس شما قرار داره.
حالا اگر هر کدوم از فساد هارو باز کنید میبینید که داخلش فقط یه متد هست یه نام getFacadeAccessor
که داخلش به کلیدی اشاره شده که داخل Container لاراول bind شده
پس میشه گفت:
فسادها یه API ساده و استاتیک برای دسترسی به متدهای داخل کلاس هایی هستند که داخل container لاراول bind شده اند
سلام، وقت بخیر.
بر اساس داکیومنتیشن لاراول:
Facades provide a "static" interface to classes that are available in
the application's service container.
فسادها، یک واسط static برای کلاسهای موجود در Service Container هستند.
لاراول فسادهای زیادی داره، مثل Cache و View و خیلی موارد دیگه که قطعا توی لاراول ازشون استفاده کردید. خودتون هم میتونید از سرویسهایی که توی پروژتون دارید فساد بسازید و به جای:
$service = new MyService();
$service->doSomething();
از فساد استفاده کنید:
MyService::doSomething();
میبینید که متد doSomething به صورت static قابل استفاده شده.
همچنین یکی از مزایای استفاده از Facadeها اینه که کدتون تمیزتره و استفادهی راحتتری دارن، همچنین توی تستنویسی و mockکردن میتونن مفید باشن. توصیه میکنم که حتما این صفحه رو بخونید:
https://laravel.com/docs/8.x/facades
با سلام
فاساد ها برای دسترسی بصورت static به سرویس های موجود درون اپلیکیشن مورد استفاده قرار میگیرند . فاساد های زیادی درون لاراول وجود دارد که شما بدون دانستن ساختار آن میتوانید از آنها استفاده نمایید . فاساد ، یک روش دسترسی به سرویس های موجود در اپلیکیشن می باشد و از طریق آن ها میتوانید متد های موجود در یک سرویس را بصورت استاتیک صدا بزنید یا به عبارت دیگر در لاراول ، یک فاساد به منظور دسترسی سریع به یک سرویس درون اپلیکیشن استفاده میشود . منطقی که این عملیات را انجام میدهد درون کلاس Facade پایه قرار دارد و هر فاسادی که شما میسازید باید از کلاس Facade پایه ، ارث بری کند .
ما در لاراول کلی فساد داریم، مثلا : DB - Route - Log و کلی فساد های دیگه
برای اینکه بیشتر با فساد ها در لاراول بشید به لینک زیر هم سر بزنید 👇
https://laravel.com/docs/8.x/facades
موفق و پیروز باشید
@keyhan
سوال بسیار خوبیه
و برای توضیحش هم درک خوبی از کارکرد قسمت های دیگه لاراول لازمه..
لاراول از ابزاری بهره میبره به نام IoC Container
که بهش Service Container هم میگند.
قسمت های مختلف (کلاس ها و غیره) فریمورک میتونند با یک نام یا Alias درون container قرار بگیرند..
و اینجوری که شما میتونید با استفاده از هلپر app اون کلاس رو از container بگیرید و متدهاش رو اجرا کنید
مثلا اگر از دستور زیر استفاده کنی
app('db')
نمونه یا اینستنسی از کلاس زیر رو دریافت میکنی
Illuminate\Database\DatabaseManager
لاراول در حین بوت شدن کلید db رو داخل کانتینر bind میکنه و به این خاطره که در دسترس شما قرار داره.
حالا اگر هر کدوم از فساد هارو باز کنید میبینید که داخلش فقط یه متد هست یه نام getFacadeAccessor
که داخلش به کلیدی اشاره شده که داخل Container لاراول bind شده
پس میشه گفت:
فسادها یه API ساده و استاتیک برای دسترسی به متدهای داخل کلاس هایی هستند که داخل container لاراول bind شده اند
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟