AppServiceProvider.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace App\Providers;
  3. use Illuminate\Support\ServiceProvider;
  4. use Illuminate\Support\Facades\Auth;
  5. use Illuminate\Support\Facades\Blade;
  6. use Illuminate\Support\Facades\View;
  7. use Illuminate\Pagination\Paginator;
  8. use Illuminate\Http\Request;
  9. use App\Http\Traits\AgentTrait;
  10. use App\Models\Config;
  11. class AppServiceProvider extends ServiceProvider
  12. {
  13. use AgentTrait;
  14. /**
  15. * Register any application services.
  16. *
  17. * @return void
  18. */
  19. public function register()
  20. {
  21. //
  22. uopz_allow_exit(true);
  23. }
  24. /**
  25. * Bootstrap any application services.
  26. *
  27. * @return void
  28. */
  29. public function boot(Request $request)
  30. {
  31. Paginator::useBootstrap(); // 페이지 네이션 부트스트랩 사용
  32. config((array)(new Config())->getAllMeta());
  33. $baseURL = env('APP_URL');
  34. $fullURL = currentURL();
  35. $adminURL = ($baseURL . DIRECTORY_SEPARATOR . ADMIN_PATH);
  36. $charset = config('app.locale');
  37. $date = date('Y-m-d');
  38. $datetime = date('H:i:s');
  39. $ipAddress = $request->ip();
  40. $referer = $request->headers->get('referer');
  41. $userAgent = $request->headers->get('user-agent');
  42. $deviceType = $this->deviceType();
  43. $device = $this->device();
  44. $platform = $this->platform();
  45. $browser = $this->browser();
  46. defined('BASE_URL') OR define('BASE_URL', $baseURL);
  47. defined('FULL_URL') OR define('FULL_URL', $fullURL);
  48. defined('ADMIN_URL') OR define('ADMIN_URL', $adminURL);
  49. defined('CHARSET') OR define('CHARSET', $charset);
  50. defined('DATE') OR define('DATE', $date);
  51. defined('DATETIME') OR define('DATETIME', $datetime);
  52. defined('IP_ADDRESS') OR define('IP_ADDRESS', $ipAddress);
  53. defined('REFERER') OR define('REFERER', $referer);
  54. defined('USER_AGENT') OR define('USER_AGENT', $userAgent);
  55. defined('DEVICE') OR define('DEVICE', $device);
  56. defined('DEVICE_TYPE') OR define('DEVICE_TYPE', $deviceType);
  57. defined('PLATFORM') OR define('PLATFORM', $platform);
  58. defined('BROWSER') OR define('BROWSER', $browser);
  59. defined('UID') OR define('UID', 0);
  60. defined('IS_USER') OR define('IS_USER', 0);
  61. defined('IS_ADMIN') OR define('IS_ADMIN', 0);
  62. View::composer('*', function ($view) {
  63. if (Auth::check()) {
  64. $view->with([
  65. 'user' => Auth::user()
  66. ]);
  67. }
  68. });
  69. // blade template 에서 admin 조건문 사용 가능
  70. Blade::if('admin', function () {
  71. return Auth::check() && Auth::user()->is_admin == 1;
  72. });
  73. /*
  74. DB::listen(function ($query) use ($request) {
  75. if (str_contains($query->sql, 'tb_general_log') || str_contains($query->sql, 'users')) {
  76. unset($query); return;
  77. }
  78. (new GeneralLog)->register($query, $request);
  79. });
  80. */
  81. }
  82. }