You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
2.8 KiB
144 lines
2.8 KiB
<?php |
|
|
|
/* |
|
* This file is part of the Symfony package. |
|
* |
|
* (c) Fabien Potencier <fabien@symfony.com> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
namespace Symfony\Component\Routing\Annotation; |
|
|
|
/** |
|
* Annotation class for @Route(). |
|
* |
|
* @Annotation |
|
* @Target({"CLASS", "METHOD"}) |
|
* |
|
* @author Fabien Potencier <fabien@symfony.com> |
|
*/ |
|
class Route |
|
{ |
|
private $path; |
|
private $name; |
|
private $requirements = []; |
|
private $options = []; |
|
private $defaults = []; |
|
private $host; |
|
private $methods = []; |
|
private $schemes = []; |
|
private $condition; |
|
|
|
/** |
|
* @param array $data An array of key/value parameters |
|
* |
|
* @throws \BadMethodCallException |
|
*/ |
|
public function __construct(array $data) |
|
{ |
|
if (isset($data['value'])) { |
|
$data['path'] = $data['value']; |
|
unset($data['value']); |
|
} |
|
|
|
foreach ($data as $key => $value) { |
|
$method = 'set'.str_replace('_', '', $key); |
|
if (!method_exists($this, $method)) { |
|
throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, \get_class($this))); |
|
} |
|
$this->$method($value); |
|
} |
|
} |
|
|
|
public function setPath($path) |
|
{ |
|
$this->path = $path; |
|
} |
|
|
|
public function getPath() |
|
{ |
|
return $this->path; |
|
} |
|
|
|
public function setHost($pattern) |
|
{ |
|
$this->host = $pattern; |
|
} |
|
|
|
public function getHost() |
|
{ |
|
return $this->host; |
|
} |
|
|
|
public function setName($name) |
|
{ |
|
$this->name = $name; |
|
} |
|
|
|
public function getName() |
|
{ |
|
return $this->name; |
|
} |
|
|
|
public function setRequirements($requirements) |
|
{ |
|
$this->requirements = $requirements; |
|
} |
|
|
|
public function getRequirements() |
|
{ |
|
return $this->requirements; |
|
} |
|
|
|
public function setOptions($options) |
|
{ |
|
$this->options = $options; |
|
} |
|
|
|
public function getOptions() |
|
{ |
|
return $this->options; |
|
} |
|
|
|
public function setDefaults($defaults) |
|
{ |
|
$this->defaults = $defaults; |
|
} |
|
|
|
public function getDefaults() |
|
{ |
|
return $this->defaults; |
|
} |
|
|
|
public function setSchemes($schemes) |
|
{ |
|
$this->schemes = \is_array($schemes) ? $schemes : [$schemes]; |
|
} |
|
|
|
public function getSchemes() |
|
{ |
|
return $this->schemes; |
|
} |
|
|
|
public function setMethods($methods) |
|
{ |
|
$this->methods = \is_array($methods) ? $methods : [$methods]; |
|
} |
|
|
|
public function getMethods() |
|
{ |
|
return $this->methods; |
|
} |
|
|
|
public function setCondition($condition) |
|
{ |
|
$this->condition = $condition; |
|
} |
|
|
|
public function getCondition() |
|
{ |
|
return $this->condition; |
|
} |
|
}
|
|
|