رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش Middleware ها در لاراول ۵
#1
در فریم ورک لاراول middleware ها یک مکانیسم ساده ای را برای فیلتر کردن درخواست های http ورودی به برنامه تان تدارک می بیند. به طور مثال لاراول یک middleware (ترجمه فارسیش میشه میان افزار) برای احرازهویت کاربران دارد و در صورتی که کاربری Login نکرده باشد و احراز هویت نشده باشد میان افزار آن را به صفحه لاگین هدایت میکند وگرنه میان افزار به درخواست اجازه ادامه کارش را میدهد.
middleware ها در دایرکتوری app/Http/Middleware قرار میگیرند.

تعریف یک middleware 
با تایپ دستور make:middleware در ترمینال می توانیم یک میان افزار جدید ایجاد کنیم. در مثال زیر میان افزار OldMiddleware را ایجاد کردیم‌.

کد پی‌اچ‌پی:
php artisan make:middleware OldMiddleware 
فایل ایجاد شده را باز میکنیم و در متد handle شرط زیر را قرار میدهیم به این صورت که درخواست ورودی به نام age اگر کوچکتر از ۲۰۰ بود به صفحه home ریدایرکت شود وگرنه به درخواست اجازه ادامه کار بدهد.

کد پی‌اچ‌پی:
<?php namespace App\Http\Middleware;
 
class 
OldMiddleware {
 
 
   /**
     * Run the request filter.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
 
   public function handle($requestClosure $next)
 
   {
 
       if ($request->input('age') < 200)
 
       {
 
           return redirect('home');
 
       }
 
 
       return $next($request);
 
   }
 



اکنون برای اینکه بخواهیم از این میان افزار استفاده کنیم ابتدا باید آن را در فایل app/Http/Kernel.php ثبت کنیم. اگر می خواهید این میان افزار برای هر درخواست http برنامه تان اجرا شود آن را به آرایه middleware$ اضافه کنید که بعد از این هردرخواستی با این نام را فیلتر خواهد کرد.

اگر می خواهید میان افزار فقط به یک مسیر خاص اعمال شود ابتدا باید آن را به آرایه routeMiddleware$ اضافه کنید به این صورت که کلید آن در آرایه نام خلاصه آن برای استفاده در برنامه به کار می رود :

کد پی‌اچ‌پی:
protected $routeMiddleware = [
 
       'auth' => 'App\Http\Middleware\Authenticate',
 
       'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicA  uth',
 
       'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
 
       'old' => 'App\Http\Middleware\OldMiddleware',
 
   ]; 


حالا می تونید میان افزار را به هر مسیری در فایل routing.php مانند مثال های زیر اضافه کنید که دوتا میان افزار old و auth را به مسیرهای موردنظرمان افزودیم :

کد پی‌اچ‌پی:
Route::post('url/create', ['middleware' => 'old''uses'=>'UrlController@create']);
 
Route::get('admin/profile', ['middleware' => 'auth', function()
{
 
   //
}]); 


Before / After Middleware

همچنین می توانیم میان افزارهای خاصی را ایجاد کنیم که قبل یا بعد از مدیریت درخواست توسط برنامه عملی را اجرا کنند.

برای اطلاعات بیشتر به اینجا مراجعه کنید


(با تشکر از حامد آریایی)
قوانین انجمن لاراولیستا  | شماره تماس :‌09124783045 |‌ تلگرام :‌ 09377869283
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 761 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,117 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,533 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  آموزش Migration در لاراول 5 alihossein 9 1,145 08-15-2016, 04:17 PM
آخرین ارسال: Naser.SherafatiNia
  آموزش فارسی لاراول ۵ alihossein 4 2,851 07-22-2016, 04:16 PM
آخرین ارسال: elham_malekmohamadi
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 0 227 04-25-2016, 04:54 PM
آخرین ارسال: Bvk.Programmer
  درخواست آموزش کار با پکیج intervention/image Bvk.Programmer 6 490 04-18-2016, 05:52 PM
آخرین ارسال: hamo
Rainbow آموزش : پکیچ کاربردی ajax-blade Bvk.Programmer 0 199 02-15-2016, 06:04 PM
آخرین ارسال: Bvk.Programmer
  آموزش Session ها در لاراول 5 alihossein 1 659 01-29-2016, 12:33 PM
آخرین ارسال: SajadDP
  آموزش کنترلر ها در لاراول 5 alihossein 3 963 01-07-2016, 02:28 PM
آخرین ارسال: Bvk.Programmer

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

انجمن لاراولیستا به عشق توسعه دهنده ها و علاقمندان به این فریم ورک محبوب ایجاد شده و امیدواریم با نظرات خوبتون ما رو در بهبود کار یاری کنید. در ضمن خیلی هم خوشحال میشیم شما هم در توسعه این انجمن سهمی داشته باشید.