یکی از ویژگیهای قدرتمند لاراول، مدیریت دسترسیهای کاربران است که به کمک Policy ها انجام میشود. Policy ها در حقیقت کلاسی هستند که در آنها متدهایی برای تعیین مجوزها تعریف میشود. حال بپردازیم به ساختار دایرکتوری Policy و اینکه چگونه میتوانید از آن استفاده بهینه داشته باشید.
دایرکتوری پلیسیهای لاراول به صورت پیشفرض در مسیر app/Policies
قرار دارد. این دایرکتوری محلی است که تمامی Policy های پروژه شما باید در آن ذخیره شوند. ساختار این دایرکتوری به شما اجازه میدهد تا سیاستهای کنترلی را به صورت ماژولار و ساده نگهداری کنید.
شما میتوانید به راحتی با استفاده از فرمان Artisan یک Policy جدید ایجاد کنید. این کار با یک فرمان ساده امکانپذیر است و به شما امکان میدهد که به سرعت بتوانید یک ساختار مناسب و دوره مجوزها را تعریف کنید.
شما میتوانید در هر Policy، متدهای مختلفی را تعریف کنید که مسئول بررسی و اعطای یا عدم اعطای مجوزها هستند. معمولاً در یک پروژه لاراول، مدیریت دسترسیها یکی از جنبههای مهم است که با استفاده از Policyها به خوبی قابل پیادهسازی است.
برای سهولت در استفاده، بهتر است که Policy های هر مدل را در فایلهای جداگانه و با نامهای مرتبط با مدل ذخیره کنید. این کار باعث میشود که پروژه شما منظمتر و خوانایی آن افزایش یابد. حال نگاهی بیندازیم به کد نمونهای که نشاندهنده نحوه استفاده از این دایرکتوری است.
php artisan make:policy PostPolicy
این کد نشان میدهد که چگونه با استفاده از دستور Artisan یک پلیسی جدید برای مدل Post ایجاد کنید. هر پلیسی میتواند شامل متدهایی برای وظایف مختلفی باشد که باید کنترل دسترسی شوند.
پله اول:
php artisan make:policy PostPolicy
این دستور به ایجاد یک Policy جدید برای مدلهای شما کمک میکند.
گام دوم: نامگذاری دقیق برای مدلها
نامگذاری صحیح، کمک میکند به آسانی مدل و Policy مرتبط با آن را شناسایی کنید.
گام سوم: تعریف متدهای دسترسی در هر Policy
برای هر عملی که باید دسترسی کنترل شود، متدی در Policy ایجاد کنید.