![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/laminas/laminas-router/src/Http/ |
<?php declare(strict_types=1); namespace Laminas\Router\Http; use Laminas\I18n\Translator\TranslatorAwareInterface; use Laminas\I18n\Translator\TranslatorInterface as Translator; use Laminas\Router\Exception; use Laminas\Stdlib\RequestInterface as Request; /** * Translator aware tree route stack. * * @template TRoute of RouteInterface * @template-extends TreeRouteStack<TRoute> */ class TranslatorAwareTreeRouteStack extends TreeRouteStack implements TranslatorAwareInterface { /** * Translator used for translatable segments. * * @var Translator */ protected $translator; /** * Whether the translator is enabled. * * @var bool */ protected $translatorEnabled = true; /** * Translator text domain to use. * * @var string */ protected $translatorTextDomain = 'default'; /** * match(): defined by \Laminas\Router\RouteInterface * * @see \Laminas\Router\RouteInterface::match() * * @param integer|null $pathOffset * @param array $options * @return RouteMatch|null */ public function match(Request $request, $pathOffset = null, array $options = []) { if ($this->hasTranslator() && $this->isTranslatorEnabled() && ! isset($options['translator'])) { $options['translator'] = $this->getTranslator(); } if (! isset($options['text_domain'])) { $options['text_domain'] = $this->getTranslatorTextDomain(); } return parent::match($request, $pathOffset, $options); } /** * assemble(): defined by \Laminas\Router\RouteInterface interface. * * @see \Laminas\Router\RouteInterface::assemble() * * @param array $params * @param array $options * @return mixed * @throws Exception\InvalidArgumentException * @throws Exception\RuntimeException */ public function assemble(array $params = [], array $options = []) { if ($this->hasTranslator() && $this->isTranslatorEnabled() && ! isset($options['translator'])) { $options['translator'] = $this->getTranslator(); } if (! isset($options['text_domain'])) { $options['text_domain'] = $this->getTranslatorTextDomain(); } return parent::assemble($params, $options); } /** * setTranslator(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::setTranslator() * * @param string $textDomain * @return TreeRouteStack */ public function setTranslator(?Translator $translator = null, $textDomain = null) { $this->translator = $translator; if ($textDomain !== null) { $this->setTranslatorTextDomain($textDomain); } return $this; } /** * getTranslator(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::getTranslator() * * @return Translator */ public function getTranslator() { return $this->translator; } /** * hasTranslator(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::hasTranslator() * * @return bool */ public function hasTranslator() { return $this->translator !== null; } /** * setTranslatorEnabled(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::setTranslatorEnabled() * * @param bool $enabled * @return TreeRouteStack */ public function setTranslatorEnabled($enabled = true) { $this->translatorEnabled = $enabled; return $this; } /** * isTranslatorEnabled(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::isTranslatorEnabled() * * @return bool */ public function isTranslatorEnabled() { return $this->translatorEnabled; } /** * setTranslatorTextDomain(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::setTranslatorTextDomain() * * @param string $textDomain * @return self */ public function setTranslatorTextDomain($textDomain = 'default') { $this->translatorTextDomain = $textDomain; return $this; } /** * getTranslatorTextDomain(): defined by TranslatorAwareInterface. * * @see TranslatorAwareInterface::getTranslatorTextDomain() * * @return string */ public function getTranslatorTextDomain() { return $this->translatorTextDomain; } }