RepositoryServiceProvider.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace App\Providers;
  3. use App\Shop\Addresses\Repositories\AddressRepository;
  4. use App\Shop\Addresses\Repositories\Interfaces\AddressRepositoryInterface;
  5. use App\Shop\Attributes\Repositories\AttributeRepository;
  6. use App\Shop\Attributes\Repositories\AttributeRepositoryInterface;
  7. use App\Shop\AttributeValues\Repositories\AttributeValueRepository;
  8. use App\Shop\AttributeValues\Repositories\AttributeValueRepositoryInterface;
  9. use App\Shop\Brands\Repositories\BrandRepository;
  10. use App\Shop\Brands\Repositories\BrandRepositoryInterface;
  11. use App\Shop\Carts\Repositories\CartRepository;
  12. use App\Shop\Carts\Repositories\Interfaces\CartRepositoryInterface;
  13. use App\Shop\Categories\Repositories\CategoryRepository;
  14. use App\Shop\Categories\Repositories\Interfaces\CategoryRepositoryInterface;
  15. use App\Shop\Cities\Repositories\CityRepository;
  16. use App\Shop\Cities\Repositories\Interfaces\CityRepositoryInterface;
  17. use App\Shop\Countries\Repositories\CountryRepository;
  18. use App\Shop\Countries\Repositories\Interfaces\CountryRepositoryInterface;
  19. use App\Shop\Couriers\Repositories\CourierRepository;
  20. use App\Shop\Couriers\Repositories\Interfaces\CourierRepositoryInterface;
  21. use App\Shop\Customers\Repositories\CustomerRepository;
  22. use App\Shop\Customers\Repositories\Interfaces\CustomerRepositoryInterface;
  23. use App\Shop\Employees\Repositories\EmployeeRepository;
  24. use App\Shop\Employees\Repositories\Interfaces\EmployeeRepositoryInterface;
  25. use App\Shop\Orders\Repositories\Interfaces\OrderRepositoryInterface;
  26. use App\Shop\Orders\Repositories\OrderRepository;
  27. use App\Shop\OrderStatuses\Repositories\Interfaces\OrderStatusRepositoryInterface;
  28. use App\Shop\OrderStatuses\Repositories\OrderStatusRepository;
  29. use App\Shop\Permissions\Repositories\PermissionRepository;
  30. use App\Shop\Permissions\Repositories\Interfaces\PermissionRepositoryInterface;
  31. use App\Shop\ProductAttributes\Repositories\ProductAttributeRepository;
  32. use App\Shop\ProductAttributes\Repositories\ProductAttributeRepositoryInterface;
  33. use App\Shop\Products\Repositories\Interfaces\ProductRepositoryInterface;
  34. use App\Shop\Products\Repositories\ProductRepository;
  35. use App\Shop\Provinces\Repositories\Interfaces\ProvinceRepositoryInterface;
  36. use App\Shop\Provinces\Repositories\ProvinceRepository;
  37. use App\Shop\Roles\Repositories\RoleRepository;
  38. use App\Shop\Roles\Repositories\RoleRepositoryInterface;
  39. use App\Shop\Shipping\ShippingInterface;
  40. use App\Shop\Shipping\Shippo\ShippoShipmentRepository;
  41. use App\Shop\States\Repositories\StateRepository;
  42. use App\Shop\States\Repositories\StateRepositoryInterface;
  43. use Illuminate\Support\ServiceProvider;
  44. class RepositoryServiceProvider extends ServiceProvider
  45. {
  46. public function register()
  47. {
  48. $this->app->bind(
  49. StateRepositoryInterface::class,
  50. StateRepository::class
  51. );
  52. $this->app->bind(
  53. ShippingInterface::class,
  54. ShippoShipmentRepository::class
  55. );
  56. $this->app->bind(
  57. BrandRepositoryInterface::class,
  58. BrandRepository::class
  59. );
  60. $this->app->bind(
  61. ProductAttributeRepositoryInterface::class,
  62. ProductAttributeRepository::class
  63. );
  64. $this->app->bind(
  65. AttributeValueRepositoryInterface::class,
  66. AttributeValueRepository::class
  67. );
  68. $this->app->bind(
  69. AttributeRepositoryInterface::class,
  70. AttributeRepository::class
  71. );
  72. $this->app->bind(
  73. EmployeeRepositoryInterface::class,
  74. EmployeeRepository::class
  75. );
  76. $this->app->bind(
  77. CustomerRepositoryInterface::class,
  78. CustomerRepository::class
  79. );
  80. $this->app->bind(
  81. ProductRepositoryInterface::class,
  82. ProductRepository::class
  83. );
  84. $this->app->bind(
  85. CategoryRepositoryInterface::class,
  86. CategoryRepository::class
  87. );
  88. $this->app->bind(
  89. AddressRepositoryInterface::class,
  90. AddressRepository::class
  91. );
  92. $this->app->bind(
  93. CountryRepositoryInterface::class,
  94. CountryRepository::class
  95. );
  96. $this->app->bind(
  97. ProvinceRepositoryInterface::class,
  98. ProvinceRepository::class
  99. );
  100. $this->app->bind(
  101. CityRepositoryInterface::class,
  102. CityRepository::class
  103. );
  104. $this->app->bind(
  105. OrderRepositoryInterface::class,
  106. OrderRepository::class
  107. );
  108. $this->app->bind(
  109. OrderStatusRepositoryInterface::class,
  110. OrderStatusRepository::class
  111. );
  112. $this->app->bind(
  113. CourierRepositoryInterface::class,
  114. CourierRepository::class
  115. );
  116. $this->app->bind(
  117. CartRepositoryInterface::class,
  118. CartRepository::class
  119. );
  120. $this->app->bind(
  121. RoleRepositoryInterface::class,
  122. RoleRepository::class
  123. );
  124. $this->app->bind(
  125. PermissionRepositoryInterface::class,
  126. PermissionRepository::class
  127. );
  128. }
  129. }