Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon アーキテクス/テナント


アーキテクス/テナント


「archtechx/tenancy」パッケージは、Laravel アプリケーションにマルチテナンシーを実装するための柔軟で強力なツールです。ここでは、`spatie/laravel-multitenancy` などの他のパッケージと比較した主な機能と相違点をいくつか示します。

「archtechx/tenancy」の主な機能:

1. 自動マルチテナント: パッケージは、大幅なコード変更を必要とせずに、マルチテナントを自動的にセットアップします。各テナントのデータベース接続、キャッシュ、ファイルシステム、キュー、Redis ストアを処理します[3]。

2. イベント ベースのアーキテクチャ: このパッケージはイベント ドリブン アーキテクチャを使用しており、テナンシー関連のイベントを処理する際のカスタマイズと柔軟性が可能です[3]。

3. 単一または複数データベース テナント: 単一データベース テナント モデルと複数データベース テナント モデルの両方をサポートします。マルチデータベース テナントの場合、モデルのスコープを現在のテナントに設定するためのモデル特性が提供されます[3]。

4. 他のパッケージとの統合: このパッケージは、テナント リソースの管理に使用できる Laravel Nova を含む他の Laravel パッケージとシームレスに統合されます[3]。

5. テスト容易性: パッケージは高度にテストしやすいように設計されており、マルチテナントの実装が徹底的にテストされていることを容易に確認できます[3]。

6. カスタマイズ: このパッケージは、イベントベースのアーキテクチャとモデルの特性を通じて広範なカスタマイズ オプションを提供し、開発者が特定のニーズに合わせてカスタマイズできるようにします[3]。

インストールとクイックスタート:

1. インストール: パッケージは Composer を使用してインストールできます: `composer require stancl/tenancy`。

2. クイックスタート: パッケージには、マルチデータベース テナンシーとドメイン ID の設定をガイドするクイックスタート チュートリアルが含まれています。このチュートリアルは、パッケージのドキュメント ページ[4]から入手できます。

`spatie/laravel-multitenancy` との比較:

- 自動セットアップ: どちらのパッケージも自動セットアップ オプションを提供しますが、「archtechx/tenancy」の方が自動セットアップにおいてより包括的であり、すぐに使えるマルチテナントのさまざまな側面を処理します。
- イベントベースのアーキテクチャ: `archtechx/tenancy` はイベント駆動型のアーキテクチャを使用しており、`spatie/laravel-multitenancy` と比較してより高い柔軟性とカスタマイズ オプションを提供します。
- 他のパッケージとの統合: どちらのパッケージも他の Laravel パッケージと適切に統合されますが、`archtechx/tenancy` は、Laravel Nova などのパッケージのサポートにおいてより明示的です。
- テスト容易性: どちらのパッケージもテスト可能であるように設計されていますが、「archtechx/tenancy」はテスト容易性に重点を置いており、徹底的なテストを保証するためのより多くのツールを提供します。

要約すると、「archtechx/tenancy」は、広範なカスタマイズオプションと他のパッケージとのより優れた統合を備えた、Laravel のマルチテナンシーのためのより包括的で柔軟なソリューションを提供します。ただし、2 つのパッケージのどちらを選択するかは、最終的にはプロジェクトの特定の要件とニーズによって決まります。

引用:
[1] https://stackoverflow.com/questions/74005556/archtechx-tenancy-vs-spatie-laravel-multitenancy
[2] https://github.com/archtechx/tenancy/actions
[3] https://tenancyforlaravel.com
[4] https://tenancyforlaravel.com/docs/v3/quickstart/
[5] https://github.com/stancl/tenancy/releases