AppServiceProvider.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Providers;
  3. use Illuminate\Support\ServiceProvider;
  4. use Laravel\Cashier\Cashier;
  5. use GuzzleHttp\Client as HttpClient;
  6. use App\MicroApi\Services\UserService;
  7. class AppServiceProvider extends ServiceProvider
  8. {
  9. /**
  10. * Bootstrap any application services.
  11. *
  12. * @return void
  13. */
  14. public function boot()
  15. {
  16. Cashier::useCurrency(config('cart.currency'), config('cart.currency_symbol'));
  17. }
  18. /**
  19. * Register any application services.
  20. *
  21. * @return void
  22. */
  23. public function register()
  24. {
  25. // 以单例模式绑定 HttpClient 实例到 App 容器
  26. $this->app->singleton('HttpClient', function ($app) {
  27. return new HttpClient([
  28. 'base_uri' => config('services.micro.api_gateway'),
  29. 'timeout' => config('services.micro.timeout'),
  30. 'headers' => [
  31. 'Content-Type' => 'application/json'
  32. ]
  33. ]);
  34. });
  35. // 以单例模式绑定用户服务到服务容器
  36. $this->app->singleton('microUserService', function ($app) {
  37. return new UserService();
  38. });
  39. }
  40. }