/** * @return array */ private function getParameters() { if ($this->parameters === NULL) { $parameters = ['annotationGroups' => $this->configuration->getOption(CO::ANNOTATION_GROUPS), 'namespace' => NULL, 'package' => NULL, 'class' => NULL, 'constant' => NULL, 'function' => NULL, 'namespaces' => array_keys($this->elementStorage->getNamespaces()), 'packages' => array_keys($this->elementStorage->getPackages()), 'classes' => array_filter($this->elementStorage->getClasses(), $this->getMainFilter()), 'interfaces' => array_filter($this->elementStorage->getInterfaces(), $this->getMainFilter()), 'traits' => array_filter($this->elementStorage->getTraits(), $this->getMainFilter()), 'exceptions' => array_filter($this->elementStorage->getExceptions(), $this->getMainFilter()), 'constants' => array_filter($this->elementStorage->getConstants(), $this->getMainFilter()), 'functions' => array_filter($this->elementStorage->getFunctions(), $this->getMainFilter()), 'elements' => $this->autocompleteElements->getElements()]; if ($this->configuration->getOption(CO::DOWNLOAD)) { $parameters['archive'] = basename($this->configuration->getZipFileName()); } $this->parameters = $parameters; } return $this->parameters; }
/** * @return Template */ public function loadTemplateWithElementNamespaceOrPackage(Template $template, ElementReflectionInterface $element) { if ($namespaces = $this->elementStorage->getNamespaces()) { $name = $element->getPseudoNamespaceName(); $template = $this->loadTemplateWithNamespace($template, $name, $namespaces[$name]); } elseif ($packages = $this->elementStorage->getPackages()) { $name = $element->getPseudoPackageName(); $template = $this->loadTemplateWithNamespace($template, $name, $packages[$name]); } return $template; }
/** * @param string $namespace * @param bool $skipLast * @return string */ public function namespaceLinks($namespace, $skipLast = true) { if (!$this->elementStorage->getNamespaces()) { return $namespace; } $links = []; $parent = ''; foreach (explode('\\', $namespace) as $part) { $parent = ltrim($parent . '\\' . $part, '\\'); $links[] = $skipLast || $parent !== $namespace ? $this->linkBuilder->build($this->namespaceUrl($parent), $part) : $part; } return implode('\\', $links); }
/** * @return bool */ public function isAllowed() { return (bool) $this->elementStorage->getNamespaces(); }