itemProvider->provide($operation, $uriVariables, $context); if (!is_null($domain)) { return $domain; } if (false === $this->kernel->isDebug() && true === $this->parameterBag->get('limited_features')) { $limiter = $this->rdapRequestsLimiter->create($this->security->getUser()->getUserIdentifier()); $limit = $limiter->consume(); if (!$limit->isAccepted()) { throw new TooManyRequestsHttpException($limit->getRetryAfter()->getTimestamp() - time()); } } $ldhName = RDAPService::convertToIdn($uriVariables['ldhName']); try { $domain = $this->RDAPService->registerDomain($ldhName); } catch (NotFoundHttpException) { $domain = (new Domain()) ->setLdhName($ldhName) ->setTld($this->RDAPService->getTld($ldhName)) ->setDelegationSigned(false) ->setDeleted(true); $this->entityManager->persist($domain); $this->entityManager->flush(); } return $domain; } }