Spatie Laravel 권한 패키지를 효과적으로 사용하려면 몇 가지 특정 구성 및 설정 단계가 필요합니다.
설치 및 출판
- 작곡가를 통해 패키지를 설치하십시오.`작곡가는 Spatie/Laravel-Permission '이 필요합니다.
- Artisan 명령을 사용하여 마이그레이션 및 구성 파일을 게시하십시오.
`PHP Artisan 공급 업체 : 게시 -provider = "Spatie \ eprisment \ urtiassionServiceProvider"`.
- 마이그레이션을 실행하여 데이터베이스에서 필요한 테이블 (``role`,`hass`,`model_has_permissions`,`model_has_roles`,`role_has_permissions`)를 생성하여 마이그레이션을 실행하십시오.
사용자 모델 구성
- 사용자 모델 (또는 역할/권한을 할당하려는 정통성 모델)은 패키지에서 제공하는 'Hasroles'특성을 사용해야합니다. 이를 통해 모델에서 역할 및 권한 관리가 가능합니다.
구성 파일 조정
- 패키지는 테이블 이름, 캐시 설정 및 모델 클래스와 같은 설정을 사용자 정의 할 수있는`config/permission.php` 파일을 게시합니다.
- 자동 증가 ID 대신 UUID를 사용하는 경우 마이그레이션을 실행하기 전에 마이그레이션과 구성 파일을 조정해야합니다.
-멀티 테넌트 또는 팀 기반 설정의 경우 구성 파일에서 "팀"기능을 활성화하고 구성해야합니다.
캐시 구성
- 패키지는 캐싱을 사용하여 권한 조회를 최적화합니다. 기본적으로 캐시 만료는 24 시간으로 설정됩니다.
-`cache '배열에서`config/permission.php`에서 캐시 스토어, 접두사 및 만료 시간을 사용자 정의 할 수 있습니다.
- 다중 테넌트 시나리오에서는 충돌을 피하기 위해 고유 한 캐시 접두사를 설정하는 것이 좋습니다.
- 단일 요청 중에 앱이 임차인을 전환하는 경우 권한 캐시를 수동으로 재 구선해야 할 수도 있습니다.
미들웨어
- 역할 또는 권한에 따라 경로를 보호하려면 HTTP 커널 또는 미들웨어 구성에 패키지의 미들웨어 별칭 (`role`,`remission`,`role_or_permission`)을 등록하십시오.
고급 사용자 정의
- 동작을 사용자 정의하려면 패키지의 역할 및 권한 모델을 확장 할 수 있지만 사용자 정의 모델을 가리 키도록 구성 파일을 업데이트해야합니다.
- 기본 데이터베이스 테이블 이름을 변경하려면 구성 파일 및 마이그레이션을 업데이트해야합니다.
- 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/prerequisites
[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-spatie-user-roles-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the-spatie-role-model-but-use-a-different-database-table