/** * Кэш ролей пользователей * * @static * @return CArrayList */ private static function getCacheRoles() { if (is_null(self::$_cacheRoles)) { self::$_cacheRoles = new CArrayList(); // инициализируем все сразу, иначе там 100500 запросов делается на // каждого пользователя, а это совсем не комильфо foreach (CActiveRecordProvider::getAllFromTable(TABLE_USER_ROLES, "name asc")->getItems() as $ar) { $role = new CUserRole($ar); self::$_cacheRoles->add($role->getId(), $role); } } return self::$_cacheRoles; }