-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathLaravelCsvServiceProvider.php
88 lines (77 loc) · 2.27 KB
/
LaravelCsvServiceProvider.php
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
<?php
namespace Coderflex\LaravelCsv;
use Coderflex\LaravelCsv\Http\Livewire\CsvImporter;
use Coderflex\LaravelCsv\Http\Livewire\HandleImports;
use Illuminate\Support\Facades\Blade;
use Illuminate\View\Compilers\BladeCompiler;
use Livewire\Livewire;
use Spatie\LaravelPackageTools\Package;
use Spatie\LaravelPackageTools\PackageServiceProvider;
class LaravelCsvServiceProvider extends PackageServiceProvider
{
public function configurePackage(Package $package): void
{
/*
* This class is a Package Service Provider
*
* More info: https://github.com/spatie/laravel-package-tools
*/
$package
->name('laravel-csv')
->hasConfigFile('laravel_csv')
->hasAssets()
->hasViews('laravel-csv')
->hasMigration('create_csv_imports_table');
}
public function bootingPackage()
{
$this->registerLivewireComponents();
$this->configureComponents();
$this->registerBladeDirectives();
}
public function registeringPackage()
{
$this->app->bind('laravel-csv', fn () => new LaravelCsvManager);
}
/**
* Configure Laravel CSV Blade components
*
* @return void
*/
protected function configureComponents(): void
{
$this->callAfterResolving(BladeCompiler::class, function () {
$this->registerComponent('button');
});
}
/**
* Register livewire components
*
* @return void
*/
protected function registerLivewireComponents(): void
{
Livewire::component('csv-importer', CsvImporter::class);
Livewire::component('handle-imports', HandleImports::class);
}
/**
* Register given component.
*
* @param string $component
* @return void
*/
protected function registerComponent(string $component): void
{
Blade::component('laravel-csv::components.'.$component, 'csv-'.$component);
}
/**
* Register laravel CSV blade directives
*
* @return void
*/
protected function registerBladeDirectives()
{
Blade::directive('csvStyles', [LaravelCsvDirectives::class, 'csvStyles']);
Blade::directive('csvScripts', [LaravelCsvDirectives::class, 'csvScripts']);
}
}