protected function isREST($url, $controller, $filters) { $handlers = ArrayHelper::only($this->RESTHandlers, Helper::getValue($filters['only'], []), Helper::getValue($filters['exclude'], [])); foreach ($handlers as $value) { if (!isset($value[3])) { $value[3] = null; } list($verbs, $pattern, $handler, $_filters) = $value; $filters = !empty($filters['filters']) ? $filters['filters'] : $_filters; if (StringHelper::isRegexp($pattern)) { $url = preg_quote($url, '/'); $pattern = "~{$pattern}"; } $pattern = str_replace('{url}', $url, $pattern); $this->params['controller'] = $controller; if ($this->isRoute($verbs, $pattern, $handler, $filters)) { $this->errors = 0; return true; } else { $this->errors |= $this->errors; } } return false; }
/** * List contents with metadata. * * @param array $keys metadata keys * @param string $directory * @param bool $recursive * @param null $is * @return array listing with metadata */ public function listWith(array $keys = [], $directory = '', $recursive = false, $is = null) { if (!empty($directory)) { if (StringHelper::isRegexp($directory)) { return $this->searchFilesWithByPattern($keys, $directory, $recursive, $is = null); } } $result = parent::listWith($keys, $directory, $recursive); return isset($is) ? array_filter($result, function ($value) use($is) { return $value['type'] === $is; }) : $result; }