آموزش Facade ها در لاراول
Facade ها، برای کلاس هایی که در service container برنامه هستند، یک رابط ثابت (static interface) فراهم می کند.
کمترین مزایای facade ها این می باشد که، syntax خلاصه و روانی را بیان می کنند. بطوریکه، تست پذیری (testability) و انعطاف (flexibility) بیشتری را نسبت به، متدهای استاتیک قبلی (static method) برقرار می کنند.
تمام Facadeهای لاراول در فضای نام Illuminate\Support\Facades تعریف شدهاند. که برای بکارگیری از آن، می توانیداز کلمه use استفاده نمایید.
use Illuminate\Support\Facades\Cache;
Route::get('/cache', function () {
return Cache::get('key');
});
این نکته گفتنی ست که، Facade ها به علت اینکه دستور العمل های ساده ای دارند، به کاربران اجازه می دهند، بدون به کار بردن نام کلاس، که به صورت دستی، به کلاس تزریق می شود، مورد استفاده قرار گیرند.
چگونه facade بسازیم
در اینجا، مراحل زیر را برای ساخت facade درلاراول بیان می کنیم :
■ یک کلاس PHP بسازید.
■ کلاس ساخته شده را به Service Provider متصل (bind) کنید.
■ این ServiceProvider را در آرایه providers ها در فایل Config\app.php ثبت کنید.
■ کلاسی بسازید که مشتق شده (extend) از کلاس lluminate\Support\Facades\Facade باشد.
■ کلاس ساخته شده در مرحله 4 را در فایل Config\app.php در آرایه aliases ثبت کنید.
Facade Class Reference
در لاراول Facade های زیادی وجود دارد. جدول زیر این facade ها را نشان می دهد.
Facade |
Class |
Service Container Binding |
App |
Illuminate\Foundation\Application |
app |
Artisan |
Illuminate\Contracts\Console\Kernel |
artisan |
Auth |
Illuminate\Auth\AuthManager |
auth |
Auth (Instance) |
Illuminate\Auth\Guard |
|
Blade |
Illuminate\View\Compilers\BladeCompiler |
blade.compiler |
Bus |
Illuminate\Contracts\Bus\Dispatcher |
|
Cache |
Illuminate\Cache\Repository |
cache |
Config |
Illuminate\Config\Repository |
config |
Cookie |
Illuminate\Cookie\CookieJar |
cookie |
Crypt |
Illuminate\Encryption\Encrypter |
encrypter |
DB |
Illuminate\Database\DatabaseManager |
db |
DB (Instance) |
Illuminate\Database\Connection |
|
Event |
Illuminate\Events\Dispatcher |
events |
File |
Illuminate\Filesystem\Filesystem |
files |
Gate |
Illuminate\Contracts\Auth\Access\Gate |
|
Hash |
Illuminate\Contracts\Hashing\Hasher |
hash |
Input |
Illuminate\Http\Request |
request |
Lang |
Illuminate\Translation\Translator |
translator |
Log |
Illuminate\Log\Writer |
log |
|
Illuminate\Mail\Mailer |
mailer |
Password |
Illuminate\Auth\Passwords\PasswordBroker |
auth.password |
Queue |
Illuminate\Queue\QueueManager |
queue |
Queue (Instance) |
Illuminate\Queue\QueueInterface |
|
Queue (Base Class) |
Illuminate\Queue\Queue |
|
Redirect |
Illuminate\Routing\Redirector |
redirect |
Redis |
Illuminate\Redis\Database |
redis |
Request |
Illuminate\Http\Request |
request |
Response |
Illuminate\Contracts\Routing\ResponseFactory |
|
Route |
Illuminate\Routing\Router |
router |
Schema |
Illuminate\Database\Schema\Blueprint |
|
Session |
Illuminate\Session\SessionManager |
session |
Session (Instance) |
Illuminate\Session\Store |
|
Storage |
Illuminate\Contracts\Filesystem\Factory |
filesystem |
URL |
Illuminate\Routing\UrlGenerator |
url |
Validator |
Illuminate\Validation\Factory |
validator |
Validator (Instance) |
Illuminate\Validation\Validator |
|
View |
Illuminate\View\Factory |
view |
View (Instance) |
Illuminate\View\View |
مثال :
مرحله 1 – طبق کدهای زیر یک service provider به نام TestFacadesServiceProvider بسازید.
php artisan make:provider TestFacadesServiceProvider
مرحله 2 – بعد از ساخت TestFacadesServiceProvider پیامی مبنی بر موفقت آمیز بودن دستور فوق برای شما نمایش داده می شود.
مرحله 3 – یک کلاس به نام TestFacades.php در مسیر App/Test بسازید و کدهای زیر را در آن قرار بدهید.
<?php
namespace App\Test;
class TestFacades{
public function testingFacades(){
echo "Testing the Facades in Laravel.";
}
}
?>
مرحله 4 – یک کلاس facade به نام “TestFacades.php” در “App/Test/Facades” بسازید.
<?php
namespace app\Test\Facades;
use Illuminate\Support\Facades\Facade;
class TestFacades extends Facade {
protected static function getFacadeAccessor() { return 'test'; }
}
مرحله 5 – یک کلاس facade به نام TestFacadesServiceProviders.php در مسیر App/Test/Facades بسازید.
<?php
namespace App\Providers;
use App;
use Illuminate\Support\ServiceProvider;
class TestFacadesServiceProvider extends ServiceProvider {
public function boot() {
//
}
public function register() {
App::bind('test',function() {
return new \App\Test\TestFacades;
});
}
}
مرحله 6 – در فایل config/app.php یک service provider ساخته شده را اضافه کنید، همانطور که در تصویر نشان داده شده است.
مرحله 7 – نام مستعار(alias) مطابق با service provider ساخته شده را، نیز در فایل config/app.php ثبت کنید.
مرحله 8 – route زیر را در فایل app/Http/routes.php اضافه کنید.
Route::get('/facadeex', function(){
return TestFacades::testingFacades();
});
مرحله 9 - مرورگر تارن را باز کنید و آدرس زیر را در آن وارد کنید.
http://localhost:8000/facadeex
مرحله 10 - پس از بازدید از URL، خروجی زیر را مشاهده خواهید کرد.
این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …