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