Chris@14: Chris@14: * Chris@14: * For the full copyright and license information, please view the LICENSE Chris@14: * file that was distributed with this source code. Chris@14: */ Chris@14: Chris@14: namespace Symfony\Component\Routing\Loader\Configurator\Traits; Chris@14: Chris@14: use Symfony\Component\Routing\Route; Chris@14: use Symfony\Component\Routing\RouteCollection; Chris@14: Chris@14: trait RouteTrait Chris@14: { Chris@14: /** Chris@14: * @var RouteCollection|Route Chris@14: */ Chris@14: private $route; Chris@14: Chris@14: /** Chris@14: * Adds defaults. Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function defaults(array $defaults) Chris@14: { Chris@14: $this->route->addDefaults($defaults); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Adds requirements. Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function requirements(array $requirements) Chris@14: { Chris@14: $this->route->addRequirements($requirements); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Adds options. Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function options(array $options) Chris@14: { Chris@14: $this->route->addOptions($options); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Sets the condition. Chris@14: * Chris@14: * @param string $condition Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function condition($condition) Chris@14: { Chris@14: $this->route->setCondition($condition); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Sets the pattern for the host. Chris@14: * Chris@14: * @param string $pattern Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function host($pattern) Chris@14: { Chris@14: $this->route->setHost($pattern); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Sets the schemes (e.g. 'https') this route is restricted to. Chris@14: * So an empty array means that any scheme is allowed. Chris@14: * Chris@14: * @param string[] $schemes Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function schemes(array $schemes) Chris@14: { Chris@14: $this->route->setSchemes($schemes); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Sets the HTTP methods (e.g. 'POST') this route is restricted to. Chris@14: * So an empty array means that any method is allowed. Chris@14: * Chris@14: * @param string[] $methods Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function methods(array $methods) Chris@14: { Chris@14: $this->route->setMethods($methods); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Adds the "_controller" entry to defaults. Chris@14: * Chris@14: * @param callable|string $controller a callable or parseable pseudo-callable Chris@14: * Chris@14: * @return $this Chris@14: */ Chris@14: final public function controller($controller) Chris@14: { Chris@17: $this->route->addDefaults(['_controller' => $controller]); Chris@14: Chris@14: return $this; Chris@14: } Chris@14: }