public function __construct($mask, $metadata = [], $flags = 0)
{
if (is_string($metadata)) {
list($presenter, $action) = Nette\Application\Helpers::splitName($metadata);
if (!$presenter) {
throw new Nette\InvalidArgumentException("Second argument must be array or string in format Presenter:action, '{$metadata}' given.");
}
$metadata = [self::PRESENTER_KEY => $presenter];
if ($action !== '') {
$metadata['action'] = $action;
}
} elseif ($metadata instanceof \Closure || $metadata instanceof Nette\Callback) {
if ($metadata instanceof Nette\Callback) {
trigger_error('Nette\\Callback is deprecated, use Nette\\Utils\\Callback::closure().', E_USER_DEPRECATED);
}
$metadata = [self::PRESENTER_KEY => 'Nette:Micro', 'callback' => $metadata];
}
$this->flags = $flags | static::$defaultFlags;
$this->setMask($mask, $metadata);
if (static::$defaultFlags) {
trigger_error('Route::$defaultFlags is deprecated, router by default keeps the used protocol.', E_USER_DEPRECATED);
} elseif ($flags & self::SECURED) {
trigger_error('Router::SECURED is deprecated, specify scheme in mask.', E_USER_DEPRECATED);
$this->scheme = 'https';
}
}
/** * @param Callback $checkConnectionFactory * @param BaseRepository $routeRepository * @param BaseRepository $langRepository * @param $prefix * @param $parameters * @param $languages * @param $defaultLanguage */ public function __construct(\Nette\DI\Container $container, \Nette\Caching\IStorage $cache, Callback $checkConnectionFactory, $prefix, $parameters, $languages, $defaultLanguage, $oneWay = FALSE) { $this->container = $container; $this->cache = new Cache($cache, self::CACHE); $this->checkConnectionFactory = $checkConnectionFactory; $this->languages = $languages; $this->defaultLanguage = $defaultLanguage; parent::__construct($prefix . '<slug .+>[/<module qwertzuiop>/<presenter qwertzuiop>]' . (count($this->languages) > 1 && strpos($prefix, '<lang>') === FALSE ? '?lang=<lang>' : ''), $parameters + array('presenter' => self::DEFAULT_PRESENTER, 'module' => self::DEFAULT_MODULE, 'action' => self::DEFAULT_ACTION, 'lang' => NULL, 'slug' => array(self::VALUE => '', self::FILTER_IN => NULL, self::FILTER_OUT => NULL), 'domain' => array(self::VALUE => NULL, self::FILTER_IN => NULL, self::FILTER_OUT => NULL)), $oneWay ? Route::ONE_WAY : NULL); }