<?phpnamespace AdminBundle\Services;use AdminBundle\Entity\Area;use AdminBundle\Entity\Booking;use AdminBundle\Entity\BookingExtra;use AdminBundle\Entity\BookingRequest;use AdminBundle\Entity\CarType;use AdminBundle\Entity\CarTypeAreaPrice;use AdminBundle\Entity\CarTypePrice;use AdminBundle\Entity\Driver;use AdminBundle\Entity\PeriodSettings;use AdminBundle\Entity\Settings;use AdminBundle\Entity\User;use AdminBundle\Entity\Tours;use AdminBundle\Entity\Zone;use AdminBundle\Repository\AreaRepository;use AdminBundle\Repository\BookingExtraRepository;use AdminBundle\Repository\BookingRepository;use AdminBundle\Repository\BookingRequestRepository;use AdminBundle\Repository\CarTypeAreaPriceRepository;use AdminBundle\Repository\CarTypeRepository;use AdminBundle\Repository\CarTypePriceRepository;use AdminBundle\Repository\DriverRepository;use AdminBundle\Repository\PeriodSettingsRepository;use AdminBundle\Repository\SettingsRepository;use AdminBundle\Repository\UserRepository;use AdminBundle\Repository\ZoneRepository;use AdminBundle\Repository\ToursRepository;use Sonata\UserBundle\Entity\UserManager;use Symfony\Component\DependencyInjection\ContainerInterface;class BaseService{ /** * @var UserManager */ protected $manager; /** * @var \Symfony\Component\DependencyInjection\ContainerInterface */ protected $container; /** * @var \AdminBundle\Repository\AreaRepository */ protected $areaRepository; /** * @var \AdminBundle\Repository\CarTypeRepository */ protected $carTypeRepository; /** * @var \AdminBundle\Repository\CarTypePriceRepository */ protected $carTypePriceRepository; /** * @var \AdminBundle\Repository\CarTypeAreaPriceRepository */ protected $carTypeAreaPriceRepository; /** * @var \AdminBundle\Repository\ZoneRepository */ protected $zoneRepository; /** * @var \AdminBundle\Repository\BookingExtraRepository */ protected $bookingExtraRepository; /** * @var \AdminBundle\Repository\UserRepository */ protected $userRepository; /** * @var SettingsRepository */ protected $settingsRepository; /** * @var PeriodSettingsRepository */ protected $periodSettingsRepository; /** * @var ToursRepository */ protected $toursRepository; /** * @var DriverRepository */ protected $driverRepository; /** * @var BookingRepository */ protected $bookingRepository; /** * @var BookingRequestRepository */ protected $bookingRequestRepository; /** * @param \Symfony\Component\DependencyInjection\ContainerInterface $container */ public function __construct(ContainerInterface $container, UserManager $usermanager) { $this->container = $container; $this->manager = $usermanager; $this->areaRepository = $this->getRepo(Area::class); $this->bookingRepository = $this->getRepo(Booking::class); $this->bookingExtraRepository = $this->getRepo(BookingExtra::class); $this->bookingRequestRepository = $this->getRepo(BookingRequest::class); $this->carTypeRepository = $this->getRepo(CarType::class); $this->carTypeAreaPriceRepository = $this->getRepo(CarTypeAreaPrice::class); $this->carTypePriceRepository = $this->getRepo(CarTypePrice::class); $this->driverRepository = $this->getRepo(Driver::class); $this->periodSettingsRepository = $this->getRepo(PeriodSettings::class); $this->settingsRepository = $this->getRepo(Settings::class); $this->userRepository = $this->getRepo(User::class); $this->toursRepository = $this->getRepo(Tours::class); $this->zoneRepository = $this->getRepo(Zone::class); } public function getRepo($class) { $em = $this->get('doctrine')->getManager(); return $em->getRepository($class); } protected function setKeyOfArray($array, $key) { $result = array(); if (!empty($array)) { foreach ($array as $item) { $result[$item[$key]] = $item; } } return $result; } protected function getDoctrine() { return $this->container->get('doctrine'); } public function get($service) { if ($service == 'sonata.user.user_manager') { return $this->manager; } return $this->container->get($service); }}