AppServiceProvider.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Providers;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Queue\Events\JobFailed;
  5. use Illuminate\Support\Facades\Queue;
  6. use Illuminate\Support\Facades\Schema;
  7. use Illuminate\Support\Facades\View;
  8. use Illuminate\Support\ServiceProvider;
  9. use Ramsey\Uuid\Uuid;
  10. use Validator;
  11. class AppServiceProvider extends ServiceProvider
  12. {
  13. /**
  14. * Register any application services.
  15. *
  16. * @return void
  17. */
  18. public function register()
  19. {
  20. //
  21. }
  22. /**
  23. * Bootstrap any application services.
  24. *
  25. * @return void
  26. */
  27. public function boot()
  28. {
  29. //
  30. Schema::defaultStringLength(191);
  31. Queue::failing(function (JobFailed $event) {
  32. (new Controller())->log(__METHOD__,'EventError_',json_encode($event));
  33. });
  34. //扩展身份证验证规则
  35. Validator::extend('identity_cards', function($attribute, $value, $parameters) {
  36. return preg_match('/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/', $value);
  37. });
  38. View::share('pageUuid',Uuid::uuid4());
  39. \Illuminate\Database\Query\Builder::macro('sql', function () {
  40. $bindings = $this->getBindings();
  41. $sql = str_replace('?','%s',$this->toSql());
  42. return vsprintf($sql, $bindings);
  43. });
  44. \Illuminate\Database\Eloquent\Builder::macro('sql', function(){
  45. return ($this->getQuery()->sql());
  46. });
  47. }
  48. }