src/AdminBundle/Services/BaseService.php line 161

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Services;
  3. use AdminBundle\Entity\Area;
  4. use AdminBundle\Entity\Booking;
  5. use AdminBundle\Entity\BookingExtra;
  6. use AdminBundle\Entity\BookingRequest;
  7. use AdminBundle\Entity\CarType;
  8. use AdminBundle\Entity\CarTypeAreaPrice;
  9. use AdminBundle\Entity\CarTypePrice;
  10. use AdminBundle\Entity\Driver;
  11. use AdminBundle\Entity\PeriodSettings;
  12. use AdminBundle\Entity\Settings;
  13. use AdminBundle\Entity\User;
  14. use AdminBundle\Entity\Tours;
  15. use AdminBundle\Entity\Zone;
  16. use AdminBundle\Repository\AreaRepository;
  17. use AdminBundle\Repository\BookingExtraRepository;
  18. use AdminBundle\Repository\BookingRepository;
  19. use AdminBundle\Repository\BookingRequestRepository;
  20. use AdminBundle\Repository\CarTypeAreaPriceRepository;
  21. use AdminBundle\Repository\CarTypeRepository;
  22. use AdminBundle\Repository\CarTypePriceRepository;
  23. use AdminBundle\Repository\DriverRepository;
  24. use AdminBundle\Repository\PeriodSettingsRepository;
  25. use AdminBundle\Repository\SettingsRepository;
  26. use AdminBundle\Repository\UserRepository;
  27. use AdminBundle\Repository\ZoneRepository;
  28. use AdminBundle\Repository\ToursRepository;
  29. use Sonata\UserBundle\Entity\UserManager;
  30. use Symfony\Component\Asset\UrlPackage;
  31. use Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy;
  32. use Symfony\Component\DependencyInjection\ContainerInterface;
  33. use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
  34. class BaseService
  35. {
  36. /**
  37. * @var AuthorizationChecker
  38. */
  39. public $authChecker;
  40. /**
  41. * @var UserManager
  42. */
  43. protected $manager;
  44. /**
  45. * @var \Symfony\Component\DependencyInjection\ContainerInterface
  46. */
  47. protected $container;
  48. /**
  49. * @var \AdminBundle\Repository\AreaRepository
  50. */
  51. protected $areaRepository;
  52. /**
  53. * @var \AdminBundle\Repository\CarTypeRepository
  54. */
  55. protected $carTypeRepository;
  56. /**
  57. * @var \AdminBundle\Repository\CarTypePriceRepository
  58. */
  59. protected $carTypePriceRepository;
  60. /**
  61. * @var \AdminBundle\Repository\CarTypeAreaPriceRepository
  62. */
  63. protected $carTypeAreaPriceRepository;
  64. /**
  65. * @var \AdminBundle\Repository\ZoneRepository
  66. */
  67. protected $zoneRepository;
  68. /**
  69. * @var \AdminBundle\Repository\BookingExtraRepository
  70. */
  71. protected $bookingExtraRepository;
  72. /**
  73. * @var \AdminBundle\Repository\UserRepository
  74. */
  75. protected $userRepository;
  76. /**
  77. * @var SettingsRepository
  78. */
  79. protected $settingsRepository;
  80. /**
  81. * @var PeriodSettingsRepository
  82. */
  83. protected $periodSettingsRepository;
  84. /**
  85. * @var ToursRepository
  86. */
  87. protected $toursRepository;
  88. /**
  89. * @var DriverRepository
  90. */
  91. protected $driverRepository;
  92. /**
  93. * @var BookingRepository
  94. */
  95. protected $bookingRepository;
  96. /**
  97. * @var BookingRequestRepository
  98. */
  99. protected $bookingRequestRepository;
  100. /**
  101. * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
  102. */
  103. public function __construct(
  104. ContainerInterface $container,
  105. UserManager $usermanager,
  106. AuthorizationChecker $authorizationChecker
  107. ) {
  108. $this->container = $container;
  109. $this->manager = $usermanager;
  110. $this->authChecker = $authorizationChecker;
  111. $this->areaRepository = $this->getRepo(Area::class);
  112. $this->bookingRepository = $this->getRepo(Booking::class);
  113. $this->bookingExtraRepository = $this->getRepo(BookingExtra::class);
  114. $this->bookingRequestRepository = $this->getRepo(BookingRequest::class);
  115. $this->carTypeRepository = $this->getRepo(CarType::class);
  116. $this->carTypeAreaPriceRepository = $this->getRepo(CarTypeAreaPrice::class);
  117. $this->carTypePriceRepository = $this->getRepo(CarTypePrice::class);
  118. $this->driverRepository = $this->getRepo(Driver::class);
  119. $this->periodSettingsRepository = $this->getRepo(PeriodSettings::class);
  120. $this->settingsRepository = $container->get('settings_repo');
  121. $this->userRepository = $this->getRepo(User::class);
  122. $this->toursRepository = $this->getRepo(Tours::class);
  123. $this->zoneRepository = $this->getRepo(Zone::class);
  124. }
  125. public function getRepo($class) {
  126. $em = $this->get('doctrine')->getManager();
  127. return $em->getRepository($class);
  128. }
  129. protected function setKeyOfArray($array, $key)
  130. {
  131. $result = array();
  132. if (!empty($array)) {
  133. foreach ($array as $item) {
  134. $result[$item[$key]] = $item;
  135. }
  136. }
  137. return $result;
  138. }
  139. protected function getDoctrine()
  140. {
  141. return $this->container->get('doctrine');
  142. }
  143. public function assetsManager() {
  144. return new UrlPackage(
  145. $this->container->getParameter('assets_base_url'),
  146. new EmptyVersionStrategy()
  147. );
  148. }
  149. public function get($service) {
  150. if ($service == 'sonata.user.user_manager') {
  151. return $this->manager;
  152. }
  153. return $this->container->get($service);
  154. }
  155. }