Почему лучше использовать ::class вместо ::className() в Yii framework 2
Как все мы знаем, одной из отличительных особенностей в Yii2 (по сравнению с первой версией) является использование пространства имен. В связи с этим в класс yii\base\Object
был добавлен статичный метод className()
. О нем и поговорим.
Данный метод возвращает полное название класса вместе с нэймспейсом. Внутри данного метода вызывается функция get_called_class()
. А она, в свою очередь, вызывает автолоадер, что сказывается на производительности.
Начиная с php версии 5.5.0
появилась возможность получения имени класса через ключевое слово class. Так как это возможность языка, то автолоадер в данном случае не вызывается.
Кстати говоря, в yii framework 2.1
будет удалена поддержка className()
, а все его вызовы будут реализованы через синтаксис php и, соответственно, изменится минимальная версия php с 5.4.0 на 5.5.0. Prooflink на коммит от cebe
.