Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Routing; Chris@0: Chris@0: /** Chris@0: * CompiledRoutes are returned by the RouteCompiler class. Chris@0: * Chris@0: * @author Fabien Potencier Chris@0: */ Chris@0: class CompiledRoute implements \Serializable Chris@0: { Chris@0: private $variables; Chris@0: private $tokens; Chris@0: private $staticPrefix; Chris@0: private $regex; Chris@0: private $pathVariables; Chris@0: private $hostVariables; Chris@0: private $hostRegex; Chris@0: private $hostTokens; Chris@0: Chris@0: /** Chris@0: * @param string $staticPrefix The static prefix of the compiled route Chris@0: * @param string $regex The regular expression to use to match this route Chris@0: * @param array $tokens An array of tokens to use to generate URL for this route Chris@0: * @param array $pathVariables An array of path variables Chris@0: * @param string|null $hostRegex Host regex Chris@0: * @param array $hostTokens Host tokens Chris@0: * @param array $hostVariables An array of host variables Chris@0: * @param array $variables An array of variables (variables defined in the path and in the host patterns) Chris@0: */ Chris@17: public function __construct($staticPrefix, $regex, array $tokens, array $pathVariables, $hostRegex = null, array $hostTokens = [], array $hostVariables = [], array $variables = []) Chris@0: { Chris@0: $this->staticPrefix = (string) $staticPrefix; Chris@0: $this->regex = $regex; Chris@0: $this->tokens = $tokens; Chris@0: $this->pathVariables = $pathVariables; Chris@0: $this->hostRegex = $hostRegex; Chris@0: $this->hostTokens = $hostTokens; Chris@0: $this->hostVariables = $hostVariables; Chris@0: $this->variables = $variables; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function serialize() Chris@0: { Chris@17: return serialize([ Chris@0: 'vars' => $this->variables, Chris@0: 'path_prefix' => $this->staticPrefix, Chris@0: 'path_regex' => $this->regex, Chris@0: 'path_tokens' => $this->tokens, Chris@0: 'path_vars' => $this->pathVariables, Chris@0: 'host_regex' => $this->hostRegex, Chris@0: 'host_tokens' => $this->hostTokens, Chris@0: 'host_vars' => $this->hostVariables, Chris@17: ]); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function unserialize($serialized) Chris@0: { Chris@14: if (\PHP_VERSION_ID >= 70000) { Chris@17: $data = unserialize($serialized, ['allowed_classes' => false]); Chris@14: } else { Chris@14: $data = unserialize($serialized); Chris@14: } Chris@14: Chris@0: $this->variables = $data['vars']; Chris@0: $this->staticPrefix = $data['path_prefix']; Chris@0: $this->regex = $data['path_regex']; Chris@0: $this->tokens = $data['path_tokens']; Chris@0: $this->pathVariables = $data['path_vars']; Chris@0: $this->hostRegex = $data['host_regex']; Chris@0: $this->hostTokens = $data['host_tokens']; Chris@0: $this->hostVariables = $data['host_vars']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the static prefix. Chris@0: * Chris@0: * @return string The static prefix Chris@0: */ Chris@0: public function getStaticPrefix() Chris@0: { Chris@0: return $this->staticPrefix; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the regex. Chris@0: * Chris@0: * @return string The regex Chris@0: */ Chris@0: public function getRegex() Chris@0: { Chris@0: return $this->regex; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the host regex. Chris@0: * Chris@0: * @return string|null The host regex or null Chris@0: */ Chris@0: public function getHostRegex() Chris@0: { Chris@0: return $this->hostRegex; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the tokens. Chris@0: * Chris@0: * @return array The tokens Chris@0: */ Chris@0: public function getTokens() Chris@0: { Chris@0: return $this->tokens; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the host tokens. Chris@0: * Chris@0: * @return array The tokens Chris@0: */ Chris@0: public function getHostTokens() Chris@0: { Chris@0: return $this->hostTokens; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the variables. Chris@0: * Chris@0: * @return array The variables Chris@0: */ Chris@0: public function getVariables() Chris@0: { Chris@0: return $this->variables; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the path variables. Chris@0: * Chris@0: * @return array The variables Chris@0: */ Chris@0: public function getPathVariables() Chris@0: { Chris@0: return $this->pathVariables; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the host variables. Chris@0: * Chris@0: * @return array The variables Chris@0: */ Chris@0: public function getHostVariables() Chris@0: { Chris@0: return $this->hostVariables; Chris@0: } Chris@0: }