Blame view
public/vendor/barryvdh/laravel-dompdf/src/ServiceProvider.php
2.5 KB
86143e36f Коммит вторник |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
<?php namespace Barryvdh\DomPDF; use Dompdf\Dompdf; use Exception; use Illuminate\Support\Str; use Illuminate\Support\ServiceProvider as IlluminateServiceProvider; class ServiceProvider extends IlluminateServiceProvider { /** * Indicates if loading of the provider is deferred. * * @var bool */ protected $defer = false; /** * Register the service provider. * * @throws \Exception * @return void */ public function register(): void { $configPath = __DIR__ . '/../config/dompdf.php'; $this->mergeConfigFrom($configPath, 'dompdf'); $this->app->bind('dompdf.options', function ($app) { $defines = $app['config']->get('dompdf.defines'); if ($defines) { $options = []; /** * @var string $key * @var mixed $value */ foreach ($defines as $key => $value) { $key = strtolower(str_replace('DOMPDF_', '', $key)); $options[$key] = $value; } } else { $options = $app['config']->get('dompdf.options'); } return $options; }); $this->app->bind('dompdf', function ($app) { $options = $app->make('dompdf.options'); $dompdf = new Dompdf($options); $path = realpath($app['config']->get('dompdf.public_path') ?: base_path('public')); if ($path === false) { throw new \RuntimeException('Cannot resolve public path'); } $dompdf->setBasePath($path); return $dompdf; }); $this->app->alias('dompdf', Dompdf::class); $this->app->bind('dompdf.wrapper', function ($app) { return new PDF($app['dompdf'], $app['config'], $app['files'], $app['view']); }); } /** * Check if package is running under Lumen app */ protected function isLumen(): bool { return Str::contains($this->app->version(), 'Lumen') === true; } public function boot(): void { if (! $this->isLumen()) { $configPath = __DIR__ . '/../config/dompdf.php'; $this->publishes([$configPath => config_path('dompdf.php')], 'config'); } } /** * Get the services provided by the provider. * * @return array<string> */ public function provides(): array { return ['dompdf', 'dompdf.options', 'dompdf.wrapper']; } } |