public function testMerge() { $this->assertEquals(new \UrlManager\Rule('GET', '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule('GET', '/', '/'), new \UrlManager\Rule('GET', '/', '/'))); $this->assertEquals(new \UrlManager\Rule('GET', '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule('GET', '/', '/'), new \UrlManager\Rule(['GET'], '/', '/'))); $this->assertEquals(new \UrlManager\Rule(['GET', 'POST'], '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule('GET', '/', '/'), new \UrlManager\Rule('POST', '/', '/'))); $this->assertEquals(new \UrlManager\Rule(['GET', 'POST'], '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule('GET', '/', '/'), new \UrlManager\Rule(['POST'], '/', '/'))); $this->assertEquals(new \UrlManager\Rule(['GET', 'POST'], '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule(['GET'], '/', '/'), new \UrlManager\Rule('POST', '/', '/'))); $this->assertEquals(new \UrlManager\Rule(['GET', 'POST'], '/', '/'), \UrlManager\Rule::merge(new \UrlManager\Rule(['GET'], '/', '/'), new \UrlManager\Rule(['POST'], '/', '/'))); }
/** * Adds a rule to UrlManager. * * @param Rule $rule * @return $this */ public function addRule(Rule $rule) { if (isset($this->rules[$rule->getRoute()])) { $this->rules[$rule->getRoute()] = Rule::merge($this->rules[$rule->getRoute()], $rule); } else { $this->rules[$rule->getRoute()] = $rule; } return $this; }