Документация Laravel 5.6 говорит:
There is no need to bind classes into the container if they do not depend on any interfaces. The container does not need to be instructed on how to build these objects, since it can automatically resolve these objects using reflection.
Я этого не понимаю.
Означает ли это, что мне не нужно использовать какие-либо привязки внутри метода регистрации поставщика, если я не использую интерфейсы?
Тогда как я могу использовать внедрение зависимостей, если я не использую привязки?
P.S .: в моем понимании:
«интерфейс» - это это
"привязки" - это bind () и singelton () внутри регистра






Если у тебя есть :
class Something {
}
Вы можете сделать app()->make(Something::class), не привязывая его заранее. Контейнер знает, что он может просто вызвать конструктор по умолчанию.
То же самое касается
class SomethingElse {
public function __construct(Something $s) { }
}
В этом случае конструктор также выполнит внедрение зависимостей. Все это выполняется контейнером автоматически.
Однако это явно не может работать для интерфейсов, поскольку интерфейсы не могут быть построены.
Также, если вам нужно что-то связать как синглтон, вам нужно привязать его явно, используя app()->singleton(...)