روش استفاده multi filter در codeigniter4
به صورت پیش فرض امکان استفاده از چند filter در بخش router.php امکان پذیر نیست. در این نوشته به روش استفاده از چند فیلتر در router.php و روتینگ codeignier میپردازیم.
روش استفاده multi filter در codeigniter4
برای اینکار ابتدا به مسیر app/Config/Feature.php بروید و متغیر multipleFilters را برابر true قرار دهید:
public bool $multipleFilters = true;
سپس وارد فایل router.php شوید و همانند کد زیر یک route را multi filter کنید:
$routes->post('new-user', 'User::newUser', ['filter' => ['auth', 'privilege']]);
اگر سوالی در ارتباط با فریمورک codeigniter دارید در بخش نظرات این نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]



















اگه فیلتر custom exceptions throw کنه، multi filter اونها رو handle میکنه؟
بله، اگر فیلتر شما exception پرتاب کند، اجرای route متوقف میشود و CodeIgniter ۴ آن exception را مدیریت میکند. البته ترتیب فیلترها و نحوه handle کردن exception در کد شما مهم است.
میشه یه فیلتر custom هم توی array اضافه کرد؟
کاملاً امکانپذیر است. فقط کافی است نام فیلتر custom خود را در آرایه [‘filter’ => [‘auth’, ‘privilege’, ‘myCustomFilter’]] اضافه کنید و مطمئن شوید که کلاس فیلتر در app/Filters تعریف شده است.
ترتیب قرار دادن filter ها مهمه؟
بله، ترتیب اجرای فیلترها مهم است. فیلترها به ترتیب تعریفشده در آرایه اجرا میشوند و اگر فیلتر اول fail کند، بقیه ممکن است اجرا نشوند.
اگه یه route چندتا filter داشته باشه و یکی fail بشه، بقیه اجرا میشن؟
خیر، اگر یک فیلتر fail کند یا exception پرتاب کند، اجرای فیلترهای بعدی متوقف میشود و درخواست به آن route ادامه پیدا نمیکند.
فعال کردن multipleFilters واقعا کار رو راحتتر کرد
با فعال کردن multipleFilters = true میتوانید چندین فیلتر را روی یک route اعمال کنید و مدیریت آنها بسیار سادهتر و قابل انعطافتر میشود.