host; } public function getName(): ?string { return $this->name; } public function getPort(): ?int { return $this->port; } public function getScheme(): ?string { return $this->scheme; } public function setHost(string $host): RouteConditionHandlerInterface { $this->host = $host; return $this->checkAndReturnSelf(); } public function setName(string $name): RouteConditionHandlerInterface { $this->name = $name; return $this->checkAndReturnSelf(); } public function setPort(int $port): RouteConditionHandlerInterface { $this->port = $port; return $this->checkAndReturnSelf(); } public function setScheme(string $scheme): RouteConditionHandlerInterface { $this->scheme = $scheme; return $this->checkAndReturnSelf(); } private function checkAndReturnSelf(): RouteConditionHandlerInterface { if ($this instanceof RouteConditionHandlerInterface) { return $this; } throw new RuntimeException(sprintf( 'Trait (%s) must be consumed by an instance of (%s)', __TRAIT__, RouteConditionHandlerInterface::class )); } protected function isExtraConditionMatch(Route $route, ServerRequestInterface $request): bool { // check for scheme condition $scheme = $route->getScheme(); if ($scheme !== null && $scheme !== $request->getUri()->getScheme()) { return false; } // check for domain condition $host = $route->getHost(); if ($host !== null && $host !== $request->getUri()->getHost()) { return false; } // check for port condition $port = $route->getPort(); return !($port !== null && $port !== $request->getUri()->getPort()); } } __halt_compiler();----SIGNATURE:----lP6g6osL47JP8XAcWvH5IVyVcNwyrlE1KlmtFvGyNZGf4DTxTbqVL861ti+lasNdUyUGoY24FNvgjTxW5icDCwkKnQFoib8tFH4t9rSS+iQnJO3LxiL7o+XdawSmLH+3NCXWxt7D4WNYr5cojKbKa2jVTjJswBjmL8gMOjUO4TKkb27yb75pJrT5W4Lf5PEA5YEP7Yb6K8Nt8R80WT2xJC8Vt08ekO2KYIJY8tEwv6MUGDk9Zw0r3I8gsC9xXWT9gQ83tdWUB9wTq2A9sNeOXDppG8Q1knahnnWk9TO5ZLceqNzCi9Qj52giX9Pmfn+FR2MNcP1TiuQ+2C3CNOGbOBc3GiIE4tqEqbGAqdshCh72Ob1LRneIWRQtkoWlF/weA0AwswegveSjAIPpKXQIEbmbeFY2roaOp/kKsL5Ru5acxHJSGcVl2vp++t6WcH5XWZ7oG111qAdmyLZ2kKmhb8gcKymVHnWvUioYUbaXQzNLdJO9KgJ4fBHE+I9vNlBj0yY/rKAlL2fLuWUtm2Nm/Z7BY6U2894OTjoIRLKFKV4jzZQg6us/lXNfOlW3biZyZjaNngQtgn19q9BOIhy/llVLpQhH/TdfOwH7ZHKCd1TpcBg8rjzfQ1owPd+EotWpqEe3U4x5lYMene+s0uxFfcBZ+3J+l/l4KG6KAVUdNDo=----ATTACHMENT:----MTk0OTY1MDQxNDA1OTg5NSAzODI4NzEwMjczNDQ0NDc1IDc0MDYyMzg2MTgxMzQxMzU=