for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Kelemen\ApiNette\Route;
class Route
{
/** @var string */
private $method;
private $pattern;
private $handler;
/** @var array */
private $config;
/**
* @param string $method
* @param string $pattern
* @param string $handler
* @param array $config
*/
public function __construct($method, $pattern, $handler, array $config = [])
$this->method = strtolower($method);
$this->pattern = $pattern;
$this->handler = $handler;
$this->config = $config;
}
* @return string
public function getMethod()
return $this->method;
public function getPattern()
return $this->pattern;
public function getHandler()
return $this->handler;
* @param string|null $key
* @return array|false
public function getConfig($key = null)
if ($key === null) {
return $this->config;
return isset($this->config[$key]) ? $this->config[$key] : false;
* Parse defined pattern params
* @return array
public function getParams()
preg_match_all('#\{(.*?)\}#', $this->pattern, $params);
return $params[1];
* Prepare preg replace pattern from defined route pattern
public function getPregPattern()
return '^' . preg_replace('#\{.*?\}#', '([^/]*)?', $this->pattern) . '$';