CWebUser: Yii::app()->user->id != Yii::app()->user->getId()

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

CWebUser: Yii::app()->user->id != Yii::app()->user->getId()

Сообщение Антон Смирнов »

Может где было, но мне не попадалось:

Код: Выделить всё

Yii::app()->user->id != Yii::app()->user->getId();
если есть state с ключем id, т.к. при Yii::app()->user->id не будет вызван метод getId(), а сработает getter:

Код: Выделить всё

...
if($this->hasState($name)) 
        return $this->getState($name); 
...
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение lancedevnull »

метод getId() это и есть getter
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение lancedevnull »

попадался мне один проект в котором была неадекватная работа с геттерами, возможно у тебя перекрыто поведение магических методов
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение Антон Смирнов »

Ты не понял в чем суть. Геттер я привел, он такой в CWebUser.

Если есть state с именем id, то Yii::app()->user->id вернет его, т.к. сработает геттер CWebUser, а Yii::app()->user->getId() вернет state с именем __id, а вот, если state с именем id не задан, то при Yii::app()->user->id сработает геттер CComponent, а не CWebUser (будет вызван Yii::app()->user->getId())

Это не баг, а скорее небольшой подводный камушек.
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение lancedevnull »

ты сам то вееришь в то что пишешь?
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение Ekstazi »

Я заметил аналогичное поведение, потому никогда не пихаю id в state
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение Антон Смирнов »

Ekstazi писал(а):Я заметил аналогичное поведение, потому никогда не пихаю id в state
Также относится к "name".
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: CWebUser: Yii::app()->user->id != Yii::app()->user->getI

Сообщение maleks »

Антон Смирнов, спасибо, момент действительно специфичный.
Yii2 universal module sceleton - for basic and advanced templates
Ответить