/** * @param string $route * @param array $constraints * @param array $defaults * @param array $aliases * @param null|array $filters * @param null|array $validators */ public function addRouteSpec(array $spec) { if (!isset($spec['name'])) { throw new InvalidArgumentException('Route specification is missing a route name'); } $name = $spec['name']; if (!isset($spec['route'])) { $spec['route'] = $spec['name']; } $routeString = $this->prependRouteWithCommand($name, $spec['route'], array_key_exists('prepend_command_to_route', $spec) ? $spec['prepend_command_to_route'] : true); $constraints = isset($spec['constraints']) && is_array($spec['constraints']) ? $spec['constraints'] : array(); $defaults = isset($spec['defaults']) && is_array($spec['defaults']) ? $spec['defaults'] : array(); $aliases = isset($spec['aliases']) && is_array($spec['aliases']) ? $spec['aliases'] : array(); $filters = isset($spec['filters']) && is_array($spec['filters']) ? $spec['filters'] : null; $validators = isset($spec['validators']) && is_array($spec['validators']) ? $spec['validators'] : null; $description = isset($spec['description']) && is_string($spec['description']) ? $spec['description'] : ''; $shortDescription = isset($spec['short_description']) && is_string($spec['short_description']) ? $spec['short_description'] : ''; $optionsDescription = isset($spec['options_descriptions']) && is_array($spec['options_descriptions']) ? $spec['options_descriptions'] : array(); $filters = $this->prepareFilters($filters); $validators = $this->prepareValidators($validators); $route = new Route($name, $routeString, $constraints, $defaults, $aliases, $filters, $validators); $route->setDescription($description); $route->setShortDescription($shortDescription); $route->setOptionsDescription($optionsDescription); $this->addRoute($route); return $this; }
/** * Get the route parameters from the router config array * * @param string $name * @return \ZF\Console\Route|boolean */ protected function getRoute($name) { foreach ($this->routes as $spec) { if ($spec['name'] === $name) { $name = $spec['name']; $routeString = $spec['route']; $constraints = isset($spec['constraints']) && is_array($spec['constraints']) ? $spec['constraints'] : array(); $defaults = isset($spec['defaults']) && is_array($spec['defaults']) ? $spec['defaults'] : array(); $aliases = isset($spec['aliases']) && is_array($spec['aliases']) ? $spec['aliases'] : array(); $filters = isset($spec['filters']) && is_array($spec['filters']) ? $spec['filters'] : null; $validators = isset($spec['validators']) && is_array($spec['validators']) ? $spec['validators'] : null; $description = isset($spec['description']) && is_string($spec['description']) ? $spec['description'] : ''; $shortDescription = isset($spec['short_description']) && is_string($spec['short_description']) ? $spec['short_description'] : ''; $optionsDescription = isset($spec['options_descriptions']) && is_array($spec['options_descriptions']) ? $spec['options_descriptions'] : array(); $route = new Route($name, $routeString, $constraints, $defaults, $aliases, $filters, $validators); $route->setDescription($description); $route->setShortDescription($shortDescription); $route->setOptionsDescription($optionsDescription); return $route; } } return false; }
public function testDescriptionIsMutable() { $route = new Route('foo', 'foo bar'); $route->setDescription('foobarbazbat'); $this->assertEquals('foobarbazbat', $route->getDescription()); }