Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Spatieパッケージを効果的に使用するために必要な特定の構成はありますか


Spatieパッケージを効果的に使用するために必要な特定の構成はありますか


Spatie Laravel Permissionパッケージを効果的に使用するには、いくつかの特定の構成とセットアップ手順が必要です。

インストールと公開

-composer経由でパッケージをインストールします: `ComposerにはSpatie/Laravel-Permission」が必要です。
- Artisanコマンドを使用して、移行および構成ファイルを公開します。
`PHP Artisanベンダー:Publish --Provider =" Spatie \ Permission \ PermissionserviceProvider "`。
-migrationsを実行して、データベースに必要なテーブル(「役割」、 `pormissions`、` model_has_permissions`、 `model_has_roles`、` role_has_permissions`)を作成します。

ユーザーモデルの構成

- ユーザーモデル(または、役割/許可を割り当てる認証可能なモデル)は、パッケージによって提供される「ハスロール」特性を使用する必要があります。これにより、モデルの役割と許可管理が可能になります。

構成ファイルの調整

- パッケージは、テーブル名、キャッシュ設定、モデルクラスなどの設定をカスタマイズできる `config/permission.php`ファイルを公開します。
- 自動インクリメントIDの代わりにUUIDを使用している場合は、移行を実行する前に、移行とおそらく構成ファイルを調整する必要があります。
- マルチテナントまたはチームベースのセットアップの場合、構成ファイルで「チーム」機能を有効にして構成する必要があります。

キャッシュ構成

- パッケージはキャッシュを使用して、許可検索を最適化します。デフォルトでは、キャッシュの有効期限は24時間に設定されています。
- `Cache`アレイの下で` config/permission.php`でキャッシュストア、プレフィックス、および有効期限をカスタマイズできます。
- マルチテナントシナリオでは、衝突を避けるために一意のキャッシュプレフィックスを設定することをお勧めします。
- 単一のリクエスト中にアプリがテナントを切り替える場合、許可キャッシュを手動で再現する必要がある場合があります。

ミドルウェア

- ロールまたはアクセス許可に基づいてルートを保護するには、HTTPカーネルまたはミドルウェア構成にパッケージのミドルウェアエイリアス(「役割」、「許可」、「役割」の構成)を登録します。

高度なカスタマイズ

- 動作をカスタマイズする場合は、パッケージの役割と許可モデルを拡張できますが、カスタムモデルを指すように構成ファイルを更新するように注意する必要があります。
- デフォルトのデータベーステーブル名を変更するには、構成ファイルと移行を更新する必要があります。
-UUIDサポートまたはその他の高度なユースケースについては、パッケージの高度なドキュメントセクションに従ってください。

要約すると、重要な構成には、構成ファイルの公開とカスタマイズ、「ハスロール」の特性の追加ユーザーモデル、移行の実行、キャッシュの構成、オプションでミドルウェアとマルチテナントサポートの設定が含まれます。これらの手順に従って、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/prererequisites
[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-rols-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the-spatie-model-use-a-different-database-table