<?php
namespace App\Repository\GeoEdge;
use App\Entity\GeoEdge\AdDomain;
use App\Model\Url;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* AdDomainRepository
*
* @extends ServiceEntityRepository<AdDomain>
* *
* * @method AdDomain|null find($id, $lockMode = null, $lockVersion = null)
* * @method AdDomain|null findOneBy(array $criteria, array $orderBy = null)
* * @method AdDomain[] findAll()
* * @method AdDomain[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class AdDomainRepository extends ServiceEntityRepository
{
/**
* constructor
*
* @param ManagerRegistry $registry
*/
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, AdDomain::class);
}
/**
* Gets Sk Domains.
*
* @return array
*/
public function getSkDomains(): array
{
$qb = $this->createQueryBuilder('d');
$qb->select('DISTINCT d.domain')
->where('d.status = :status')
->addOrderBy('d.id', 'ASC')
->setParameter('status', AdDomain::STATUS_ACTIVE);
$domains = array_column($qb->getQuery()->getArrayResult(), 'domain');
foreach ($domains as &$domain) {
$domain = Url::getTopLevelDomain($domain);
}
return $domains;
}
}