رتبه موضوع:
  • 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
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش فارسی لاراول ۵ alihossein 5 3,150 03-19-2017, 05:59 PM
آخرین ارسال: meysam_biz
  ساخت authentication شخصی یا استفاده از authentication لاراول meysam_biz 0 39 03-19-2017, 05:38 PM
آخرین ارسال: meysam_biz
  درخواست راهنمایی : تعریف سطوح دسترسی کاربری در لاراول Bvk.Programmer 11 941 02-16-2017, 10:09 PM
آخرین ارسال: ansar
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 1 378 02-16-2017, 09:55 PM
آخرین ارسال: ansar
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 2 124 12-18-2016, 08:43 AM
آخرین ارسال: hamo
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 979 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  نحوه ایجاد Token-Based Authentication(oauth2) در لاراول با استفاده از passport anonymox 0 136 11-12-2016, 06:27 AM
آخرین ارسال: anonymox
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,397 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  اجرای کوئری در لاراول amirbakhtiari 1 97 11-06-2016, 07:50 AM
آخرین ارسال: hamo
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 2,126 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh

پرش به انجمن:


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

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

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