Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Почему лучше использовать ::class вместо ::className() в Yii framework 2

Почему лучше использовать ::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.

  • 2016-05-19 18:22:14