Внезапно столкнулся с проблемой, скрипт начал падать с ошибкой segmentation fault, не давая никаких подробностей.
Методом дедукции выяснил что проблема в следующем.
Class1
{
private Class2 $class2;
public function __construct()
{
$this->class2 = app(Class2::class);
}
}
Class2
{
private Class1 $class1;
public function __construct()
{
$this->class1 = app(Class1::class);
}
}
Класс1 в зависимости имеет Класс2
Класс2 в зависимости имеет Класс1
Что вызывает, видимо, бесконечную рекурсию и падение скрипта.
Вопрос - как правильно инициилизровать зависимости в таком случае ? (средствами laravel, или же в целом php)
На поверхности только вариант убирать зависимость из конструктора и создавать ее уже в конкретном методе. Таким образом пока метод запрошен не будет, зависимость создаваться не будет, рекурсия разорвется. Но есть ли вариант как то это сделать, не убирая из конструкторов классов ?