|
- <?php
- /**
- * @author La clic ! <contact@laclic.fr>
- */
-
-
- namespace Lc\SovBundle\Resolver;
-
-
- use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
- use Symfony\Component\HttpFoundation\RequestStack;
-
- class UrlResolver
- {
- protected ParameterBagInterface $parameterBag;
- protected RequestStack $requestStack;
-
- public function __construct(ParameterBagInterface $parameterBag, RequestStack $requestStack)
- {
- $this->parameterBag = $parameterBag;
- $this->requestStack = $requestStack;
- }
-
- public function isServerLocalhost(): bool
- {
- return in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1']);
- }
-
- public function isBot(): bool
- {
- if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match(
- '/bot|crawl|slurp|spider/i',
- $_SERVER['HTTP_USER_AGENT']
- )) {
- return true;
- } else {
- return false;
- }
- }
-
- public function isRouteAdmin(): bool
- {
- return $this->testRoute(['admin_', 'file_manager']);
- }
-
- public function isRouteLogin(): bool
- {
- return $this->testRoute(['sov_login', 'sov_logout', 'frontend_security_login']) ;
- }
-
- public function testRoute($mixed, $route = null): bool
- {
- if(is_null($route)) {
- $route = $this->getRouteCurrentRequest();
- }
-
- if(!$route) {
- return false;
- }
-
- if(is_array($mixed)) {
- foreach($mixed as $testRoute) {
- if($this->testRoute($testRoute, $route)) {
- return true;
- }
- }
-
- return false;
- }
-
- return strpos($route, $mixed) !== false;
- }
-
- public function getRouteCurrentRequest(): ?string
- {
- if(!$this->requestStack->getCurrentRequest()) {
- return null;
- }
-
- $requestAttributes = $this->requestStack->getCurrentRequest()->attributes->all();
- $route = isset($requestAttributes['_route']) ? $requestAttributes['_route'] : null;
-
- return $route;
- }
- }
|