private static function initPermissionsMap() { // init an empty map self::$map = self::initEmptyMap(); if (!self::$roleIds) { self::$map = self::getPermissions(null); } else { foreach (self::$roleIds as $roleId) { // init actions and parameters arrays from cache $roleMap = self::getPermissions($roleId); // merge current role map to the global map self::$map = array_merge_recursive(self::$map, $roleMap); } } }