-
Notifications
You must be signed in to change notification settings - Fork 19
/
SketchpadServiceProvider.php
92 lines (73 loc) · 2 KB
/
SketchpadServiceProvider.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
89
90
91
92
<?php namespace davestewart\sketchpad;
use davestewart\sketchpad\config\Paths;
use davestewart\sketchpad\config\SketchpadConfig;
use davestewart\sketchpad\services\Sketchpad;
use Illuminate\Support\ServiceProvider;
use Route;
/**
* SketchpadServiceProvider
*
* Sets up the sketchpad package
*/
class SketchpadServiceProvider extends ServiceProvider
{
public static $settings = [];
protected $middleware = [
'web'
];
/**
* Custom permissions
*
* @param $name
* @param $value
*/
public static function set ($name, $value)
{
array_set(self::$settings, $name, $value);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
// singletons
$this->app->singleton(Paths::class);
$this->app->singleton(SketchpadConfig::class);
$this->app->singleton(Sketchpad::class);
// install command
$this->commands([
'davestewart\sketchpad\commands\InstallCommand'
]);
}
/**
* Bootstrap the application services.
*/
public function boot()
{
// ------------------------------------------------------------------------------------------------
// variables
$root = realpath(__DIR__ . '/../') . '/';
$views = $root . 'package/views';
$config = app(SketchpadConfig::class);
// ------------------------------------------------------------------------------------------------
// views
$this->loadViewsFrom($views, 'sketchpad');
$this->loadViewsFrom(base_path($config->views), 'sketchpad');
view()->composer('*', function ($view) use ($config) {
$view->with('route', $config->route);
});
// ------------------------------------------------------------------------------------------------
// routes
$parameters =
[
'namespace' => 'davestewart\sketchpad\controllers',
'middleware' => $this->middleware,
];
Route::group($parameters, function ($router) use ($config)
{
require (__DIR__ . '/routes.php');
});
}
}