Когда контейнер Laravel используется для создания новых экземпляров объекта, он проверяет зависимости этих объектов и либо внедряет связанные экземпляры из контейнера, либо сообщает о новых экземплярах, если это возможно.
В этом случаекогда Laravel попытается создать новый экземпляр вашего контроллера, он увидит, что ему нужен ServiceA.Если ServiceA не связан в контейнере, он попытается создать новый экземпляр.Таким образом, он проверит зависимости ServiceA и увидит, что ему нужен ServiceB.Если ServiceB не связан в контейнере, он попытается создать новый экземпляр.Таким образом, он проверит зависимости ServiceB и увидит, что ему нужен ServiceA.Если ServiceA не связан в контейнере, он попытается создать новый экземпляр.Таким образом, он проверит зависимости ServiceA и увидит, что ему нужен ServiceB.Если ServiceB не связан в контейнере, он попытается создать новый экземпляр.Таким образом, он проверит зависимости ServiceB и увидит, что ему нужен ServiceA.Если ServiceA не связан в контейнере, он будет пытаться создать новый экземпляр ... вы получите точку.
Обычно, когда у вас есть два класса, которые являются зависимостями друг от друга, это означает, что есть функциональностьв каждом, что, вероятно, принадлежит к третьему (или четвертому ...) классу.Если можете, попытайтесь идентифицировать эту функцию и разделить ее на ServiceC, от которого зависят друг от друга ServiceA и ServiceB.