رتبه موضوع:
  • 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 |‌ مدیریت کانال تلگرام
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 6 162 09-19-2017, 04:30 AM
آخرین ارسال: Bvk.Programmer
  خطای نصب لاراول dmbehrouz 0 26 09-07-2017, 01:11 PM
آخرین ارسال: dmbehrouz
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 1 80 08-31-2017, 08:40 AM
آخرین ارسال: imanghafoori
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,188 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,684 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 71 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 42 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 80 07-05-2017, 05:03 PM
آخرین ارسال: itroz
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 3 276 05-08-2017, 09:27 AM
آخرین ارسال: Geppeto
  لینک فایل های css و js در لاراول saeed.rahgooy@gmail.com 1 97 05-01-2017, 07:50 PM
آخرین ارسال: zootech

پرش به انجمن:


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

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

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