Yii::$app - используется когда пространство имен подключено через use;
\Yii::$app - используется когда подключение пространства имен осуществляется непосредственно в коде. Собственно слеш перед Yii указывает что для подключения этого пространства имен нужно выйти за рамки текущего.
сейчас посмотрел шаблон advanced на гитхабе, там строка вида
$session = Yii::$app->session;
когда в моем приложении всё еще
$session = \Yii::$app->session;
получается, использование глобального пространства имен являлось ошибкой, и лучше так не делать?
это не ошибка, но с точки зрения чистоты и удобства лучше подключать все через use.
В данном примере особых проблем не видно, но если представить что у нас есть класс \app\model\MyModel который подключается где-то во многих местах без use, то:
1. Код станет менее удобен для чтения
2. Будет сложности с заменой namespace
Представьте что \app\model\MyModel встречается 50 раз в одном классе - насколько из за этого код будет перегружен для восприятия и для изменения? думаю что значительно