src/Repository/GeoEdge/AdDomainRepository.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Repository\GeoEdge;
  3. use App\Entity\GeoEdge\AdDomain;
  4. use App\Model\Url;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. /**
  8.  * AdDomainRepository
  9.  *
  10.  * @extends ServiceEntityRepository<AdDomain>
  11.  * *
  12.  * * @method AdDomain|null find($id, $lockMode = null, $lockVersion = null)
  13.  * * @method AdDomain|null findOneBy(array $criteria, array $orderBy = null)
  14.  * * @method AdDomain[]    findAll()
  15.  * * @method AdDomain[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  16.  */
  17. class AdDomainRepository extends ServiceEntityRepository
  18. {
  19.     /**
  20.      * constructor
  21.      *
  22.      * @param ManagerRegistry $registry
  23.      */
  24.     public function __construct(ManagerRegistry $registry)
  25.     {
  26.         parent::__construct($registryAdDomain::class);
  27.     }
  28.     /**
  29.      * Gets Sk Domains.
  30.      *
  31.      * @return array
  32.      */
  33.     public function getSkDomains(): array
  34.     {
  35.         $qb $this->createQueryBuilder('d');
  36.         $qb->select('DISTINCT d.domain')
  37.            ->where('d.status = :status')
  38.            ->addOrderBy('d.id''ASC')
  39.            ->setParameter('status'AdDomain::STATUS_ACTIVE);
  40.         $domains =  array_column($qb->getQuery()->getArrayResult(), 'domain');
  41.         foreach ($domains as &$domain) {
  42.             $domain Url::getTopLevelDomain($domain);
  43.         }
  44.         return $domains;
  45.     }
  46. }