-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathFramework.php
71 lines (63 loc) · 1.51 KB
/
Framework.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
<?php
namespace BEA\Theme\Framework;
use BEA\Theme\Framework\Services\Acf;
use BEA\Theme\Framework\Services\Assets;
use BEA\Theme\Framework\Services\Facet_WP;
use BEA\Theme\Framework\Services\Performance;
use BEA\Theme\Framework\Services\Assets_JS_Async;
use BEA\Theme\Framework\Services\Editor;
use BEA\Theme\Framework\Services\Editor_Patterns;
use BEA\Theme\Framework\Services\Menu;
use BEA\Theme\Framework\Services\Sidebar;
use BEA\Theme\Framework\Services\Svg;
use BEA\Theme\Framework\Services\Theme;
use BEA\Theme\Framework\Tools\Body_Class;
use BEA\Theme\Framework\Tools\Template_Parts;
/**
* Class Framework
*
* @package BEA\Theme\Framework
*/
class Framework {
/**
* @var Service_Container
*/
protected static $container;
/**
* @var array $services
*/
protected static $services = [
// Services
Theme::class,
Assets::class,
Performance::class,
Assets_JS_Async::class,
Editor::class,
Editor_Patterns::class,
Svg::class,
Acf::class,
Menu::class,
Facet_WP::class,
// Services as Tools
Body_Class::class,
Template_Parts::class,
];
/**
* @return Service_Container
*/
public static function get_container(): Service_Container {
if ( is_null( self::$container ) ) {
self::$container = new Service_Container();
array_map( [ __CLASS__, 'register_service' ], self::$services );
}
return self::$container;
}
/**
* Register Service
*
* @param $name
*/
public static function register_service( $name ): void {
self::get_container()->register_service( $name );
}
}