Чтобы эффективно использовать пакет разрешений Spatie Laravel, требуется несколько конкретных конфигураций и этапов настройки:
Установка и публикация
- Установите пакет через композитор: `Композитор требует Spatie/Laravel-Permission`.
- Опубликовать файл миграции и конфигурации, используя команду Artisan:
`PHP Artisan Vendor: Publish -provider =" spatie \ разрешение \ permissionserviceprovider "`.
- Запустите миграции, чтобы создать необходимые таблицы (`roles`,` permissions`, `model_has_permissions`,` model_has_roles`, `role_has_permissions`) в базе данных.
Пользовательская модель конфигурации
- Пользовательская модель (или любая подлинная модель, которую вы хотите назначить роли/разрешения), должна использовать признаку «Hasroles», предоставленную пакетом. Это позволяет управлять ролей и разрешением на модели.
Регулирование файла конфигурации
- В пакете публикуется файл `config/rescision.php`, в котором вы можете настроить настройки, такие как имена таблиц, настройки кэша и классы модели.
- Если вы используете UUIDS вместо автоматических идентификаторов, вам необходимо регулировать миграции и, возможно, файл конфигурации соответственно перед запуском миграции.
-Для настройки мультитенантных или команды вы должны включить и настроить функцию «Команды» в файле конфигурации.
Конфигурация кэша
- Пакет использует кэширование для оптимизации поиска разрешений. По умолчанию истечение срока действия кеша установлено на 24 часа.
- Вы можете настроить кэш -хранилище, префикс и время истечения срока действия в `config/rescision.php` в массиве` cache`.
- В мультитенантных сценариях рекомендуется установить уникальный префикс кэша, чтобы избежать столкновений.
- Если ваше приложение переключает арендаторов во время одного запроса, вам может потребоваться вручную повторно повторно повторно обретать кеш разрешения.
промежуточное программное обеспечение
- Чтобы защитить маршруты на основе ролей или разрешений, зарегистрируйте псевдонимы промежуточного программного обеспечения пакета (`role`,` разрешение `,` role_or_permission`) в конфигурации ядра HTTP или промежуточного программного обеспечения.
Расширенная настройка
- Вы можете расширить роли и модели разрешений пакета, если вы хотите настроить поведение, но вы должны быть осторожны, чтобы обновить файл конфигурации, чтобы указать на свои пользовательские модели.
- Изменение имен таблиц базы данных по умолчанию требует обновления файла конфигурации и, возможно, миграций.
- Для поддержки UUID или других расширенных вариантов использования следуйте в разделе «Расширенные документации пакета».
Таким образом, конфигурации ключей включают в себя публикацию и настройку файла конфигурации, добавление черты `hasroles 'в модель пользователя, запуск миграции, правильную настройку кэширования и необязательно настройку промежуточного и мультитенантного поддержки. Следуя этим шагам гарантирует, что пакет Spatie будет эффективно работать в вашем приложении Laravel [1] [2] [6] [8] [9].
Цитаты:
[1] https://spatie.be/docs/laravel-permission/v6/installation-laravel
[2] https://spatie.be/docs/laravel-permission/v6/perequisites
[3] https://spatie.be/docs/laravel-data/v4/requirements
[4] https://packagist.org/packages/spatie/laravel-settings
[5] https://spatie.be/docs/laravel-html/v3/installation-setup
[6] https://www.honeybadger.io/blog/laravel-permissions-Roles/
[7] https://github.com/spatie/laravel-slack-alerts/discussions/22
[8] https://github.com/spatie/laravel-permission/blob/main/docs/advanced-usage/cache.md
[9] https://www.allphptricks.com/laravel-11-patie-user-roles-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the-patie-role-model-but-use-a-different-database-table