В рамках
вот этого пулл-реквеста добавлена проверка на видимость полей через Reflection. В
1.3.2 такой функциональности не было, потому и работало быстро.
Что характерно, версия 1.x использовала для этого метод getModelsMetadata, который возвращал данные о полях (которые, к слову, еще и кешировал), а в 2.x это убрали и добавили тупое обращение к Reflection. Для production-ready high-speed фреймворка - это дичайший зашквар.
В качестве ответа на вопрос, что делать, могу посоветовать: определяйте сеттеры. Тогда код зайдет в блок _possibleSetter и до _isVisible выполнение не дойдет. Это костыль, но должно сработать.
Еще можно переопределить __set в своем базовом классе модели. Что-то типа:
public function __set($property, $value) {
if (is_array($value) || is_object($value)) {
return parent::__set($property, $value);
}
if ($this->_possibleSetter($property, $value)) {
return $value();
}
$this->{$property} = $value;
return $value();
}
Но это на свой страх и риск, так как валидность свойств проверяться не будет.
Ну и пишите им issue, конечно