/** * {@inheritDoc} */ protected function parseAction($action) { $action = parent::parseAction($action); if (isset($action['protected'])) { $action['protected'] = is_array($action['protected']) ? last($action['protected']) : $action['protected']; } if (isset($action['scopes'])) { $action['scopes'] = is_array($action['scopes']) ? $action['scopes'] : explode('|', $action['scopes']); } if (!isset($action['before'])) { $action['before'] = []; } elseif (is_string($action['before'])) { $action['before'] = [$action['before']]; } foreach ([static::API_FILTER_THROTTLE, static::API_FILTER_AUTH] as $filter) { if (($key = array_search($filter, $action['before'])) !== false) { unset($action['before'][$key]); } array_unshift($action['before'], $filter); } return $action; }