AppServiceProvider.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Providers;
  3. use App\Models\User;
  4. use Illuminate\Support\ServiceProvider;
  5. use Prettus\Repository\Providers\RepositoryServiceProvider;
  6. class AppServiceProvider extends ServiceProvider
  7. {
  8. /**
  9. * Register any application services.
  10. *
  11. * @return void
  12. */
  13. public function register()
  14. {
  15. $this->app->register(RepositoryServiceProvider::class);
  16. $this->app->singleton('getUserInstance', function () {
  17. return new User();
  18. });
  19. }
  20. /**
  21. * Bootstrap any application services.
  22. *
  23. * @return void
  24. */
  25. public function boot()
  26. {
  27. \Schema::defaultStringLength(191);
  28. // 打印所有sql
  29. if (config('app.db_log')) {
  30. \DB::listen(function ($query) {
  31. // 先替换sql中的 % 避免 vsprintf 当成参数解析报错 Too few arguments
  32. $tmp = str_replace('%', '(no-vsprintf)', $query->sql);
  33. // \Log::info($tmp);
  34. $tmp = str_replace('?', '"%s"', $tmp);
  35. // \Log::info($tmp);
  36. $tmp = vsprintf($tmp, $query->bindings);
  37. $tmp = str_replace('\\', '', $tmp);
  38. // 还原 %
  39. $tmp = str_replace('(no-vsprintf)', '%', $tmp);
  40. \Log::info($tmp);
  41. // Log::info($tmp."\n\n\t");
  42. });
  43. }
  44. }
  45. }