AppServiceProvider.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Providers;
  3. use App\Models\ChatTeam;
  4. use App\Models\CourseField;
  5. use App\Models\GameUserScore;
  6. use App\Models\Order;
  7. use App\Models\User;
  8. use App\Models\UserAddress;
  9. use App\Models\UserExtra;
  10. use App\Models\UserIntegral;
  11. use Illuminate\Support\ServiceProvider;
  12. use Prettus\Repository\Providers\RepositoryServiceProvider;
  13. class AppServiceProvider extends ServiceProvider
  14. {
  15. /**
  16. * Register any application services.
  17. *
  18. * @return void
  19. */
  20. public function register()
  21. {
  22. $this->app->register(RepositoryServiceProvider::class);
  23. $this->app->singleton('getChatTeamInstance', function (){
  24. return new ChatTeam();
  25. });
  26. $this->app->singleton('getUserInstance', function (){
  27. return new User();
  28. });
  29. $this->app->singleton('getUserExtraInstance', function (){
  30. return new UserExtra();
  31. });
  32. $this->app->singleton('getCourseFieldInstance', function (){
  33. return new CourseField();
  34. });
  35. $this->app->singleton('getUserIntegralInstance', function (){
  36. return new UserIntegral();
  37. });
  38. $this->app->singleton('getGameUserScoreInstance', function (){
  39. return new GameUserScore();
  40. });
  41. $this->app->singleton('getOrderInstance', function (){
  42. return new Order();
  43. });
  44. $this->app->singleton('getUserAddressInstance', function (){
  45. return new UserAddress();
  46. });
  47. }
  48. /**
  49. * Bootstrap any application services.
  50. *
  51. * @return void
  52. */
  53. public function boot()
  54. {
  55. \Schema::defaultStringLength(191);
  56. // 打印所有sql
  57. if(config('app.db_log')) {
  58. \DB::listen(function($query) {
  59. // 先替换sql中的 % 避免 vsprintf 当成参数解析报错 Too few arguments
  60. $tmp = str_replace('%', '(no-vsprintf)', $query->sql);
  61. // \Log::info($tmp);
  62. $tmp = str_replace('?', '"'.'%s'.'"', $tmp);
  63. // \Log::info($tmp);
  64. $tmp = vsprintf($tmp, $query->bindings);
  65. $tmp = str_replace("\\","",$tmp);
  66. // 还原 %
  67. $tmp = str_replace('(no-vsprintf)', '%', $tmp);
  68. \Log::info($tmp);
  69. //Log::info($tmp."\n\n\t");
  70. });
  71. }
  72. }
  73. }