Это связано с тем, как в IDE осуществляется рефакторинг.
Допустим, у вас есть класс MyClass
И вы используете:
$container['MyClass'] = function(){
// create object here
}
Если вы переименуете класс «MyClass», вам нужно будет переименовывать строку везде, где вы ее используете. Инструментам рефакторинга будет сложнее выяснить, что строка «MyClass» в данном случае является ссылкой на класс, а не на случайную пробу.
Если вы используете:
$container[MyClass::name] = function(){
// create object here
}
Вам нужно будет переименовать класс MyClass, но многие IDE (например, phpstorm, vscode и т. Д.) Имеют инструменты для автоматического переименования (рефакторинга) ссылки на класс повсюду в вашем коде, и поскольку вы использовали класс и не строка, которую они поймут, что MyClass нужно будет переименовать.
Таким образом, намного легче поддерживать второе, чем первое.