Как фреймворки получают доступ к классам библиотек?
Сейчас начал изучать yii2 и меня мучают мысли о том как же реализуется вызовы а-ля Yii::$app->request->post() и т.п. Доступ к библиотекам таким образом доступен в любом месте приложения и по-видимому подключаются не сразу все библиотеки а только те, которые нужны, если я правильно понимаю. Как это реализуется? Задействован какой-то паттерн или несколько? Обьясните пожалуйста.
я понимаю как происходит автолоадинг. Вопрос в том как в классе yii в статическую переменную $app попадает обьект нужного класса, когда его имя явно не указывается