Это в основном зависит от ваших потребностей.Определение компонента в конфигурации и использование его в качестве Yii::$app->sampleClass
создает один экземпляр, который можно легко настроить на уровне конфигурации и совместно использовать в проекте.Прекрасными примерами являются соединение с БД или менеджер URL - обычно вы хотите использовать один и тот же экземпляр этих компонентов в нескольких местах, и вы хотите иметь возможность легко их настраивать.Определение их в конфигурации и использование в качестве Yii::$app->component
является естественным выбором в Yii (хотя в целом это плохая практика, и использование Yii::$app
в качестве статического указателя службы может быть проблематичным в больших приложениях).
Использование ключевого слова new
или Yii::createObject()
- лучший вариант, если вы не хотите предоставлять общий доступ к компоненту или хотите передать его как зависимость напрямую.