Я знаю, как работает контейнер Inversion of Control, и я знаю, как его создать. Но я знаю только, как это сделать, используя методы регистрации и разрешения.Как laravel разрешает зависимости на основе typehinting?
Я смотрел в документации Laravel, но я застрял в попытке выяснить, как Laravel может разрешить зависимость на основе typehinting. Где отсутствует ссылка для этой точной части?
Когда я использую более традиционный контейнер IoC, где я вручную разрешаю вещи, мне, по крайней мере, нужно вызвать статический метод для перехода. Кажется, что Laravel не нуждается в этом.
Может ли кто-нибудь направить меня в правильном направлении или создать крошечный пример?
Я работал мой путь через:
http://code.tutsplus.com/tutorials/dependency-injection-huh--net-26903
В резюмировать. Может быть, кто-нибудь может создать быстрый пример с автоматическим разрешением для ввода типа или это действительно сложно?
По вашему вопросу, похоже, вы хотите знать, как Laravel разрешает DI через подсказку типа. То, что вы ищете, называется Reflection в PHP. С отражением вы создаете зеркальный объект класса внутри переменной, и вы можете перемещаться по нему, прежде чем создавать экземпляр. –
Как огонь отражения всегда срабатывает, когда используется метод typehint? –
это нет. Если вы уделяете пристальное внимание laravel, у вас есть только DI для классов/методов, которые Laravel вызывает для вас. Если вы экземпляр объекта вручную, вы увидите, что DI не спасет вас. –