私はビジネスロジックを実行するサービス層クラスを持っています。PHP - 無限ループを引き起こすサービス層クラスのインスタンス化
私は、ユーザーが管理者かどうか、ユーザーがプロジェクトにアクセスしているかどうか、ユーザーが特定の役割を持っているかどうかなどのユーザー役割関連サービスを実行するクラスがあるとします.は、関連するプロジェクトメンバーを取得のようなもの、プロジェクトの詳細など
UserService
$projectService; //class variable
hasProjectAccess(){
{
...
projectMember = projectService->getProjectMembers();
...
}
isUserAdmin(){
return true|false; //just an example
}
ProjectService
$userService; //class variable
getProjectMembers(){
{
...
perform some logic to create array of members
...
if(userService.isUserAdmin())
.. perform some other logic
...
}
私はそれがすべての依存関係をインスタンス化して注入するContainer
クラスの使用スリム3を、使用しています。
UserService
クラスをインスタンス化しようとすると、(settersメソッドを使用して)ProjectService
クラスをインスタンス化する必要があります。これは、UserServiceクラスをインスタンス化する必要があります。...など...無限ループを作成します。 (循環依存性)。
Java/Springのようなものを実現しようとしています。クラス内で必要なサービスが異なり、Springを使用してそれに接続するので、循環依存性について心配する必要はありません。
基本的なことを除いて、私はPHPに慣れていません。
詳細情報が必要な場合はお知らせください。