Я в настоящее время выясняю способ вышесказанного.
Моя текущая структура приложения выглядит следующим образом:
/modules
/ modulename
/controllers
/ProjectController.php
Приложение имеет 3 разные роли пользователя, каждая из которых имеет функции, содержащиеся в этих модулях. Я хотел бы запретить использование нескольких действий для каждой роли пользователя в одном контроллере, поскольку я думаю, что это делает мой код менее читаемым и уродливым. Итак, я думал о такой структуре:
/modules
/ modulename
/controllers
/ProjectController.php
/EmployeeProjectController.php
/ExecutiveProjectController.php
Это должно работать следующим образом:
- Projectcontroller.php должен быть загружен для пользователей с правами администратора
- EmployeeProjectController.php должен быть загружен для сотрудников
- ExecutiveProjectController.php должен быть загружен для руководителей
Конечно, я мог бы относительно легко использовать другую схему URL, чтобы обеспечить это для каждой роли пользователя, но Я не хочу этого . Я хочу единую схему URL.
Следующим шагом будет создание маршрутов для каждого из контроллеров, чтобы перезаписать их на другой контроллер. Я бы тоже хотел это предотвратить.
Мне нужен способ, чтобы глобально указать маршрутизатору префиксировать контроллеры как «Исполнительный» или «Сотрудник» или что-то еще, в зависимости от роли пользователя.
Как лучше всего это сделать?