Passed
Push — master ( 517cb3...2c2725 )
by Atanas
02:15
created

RoutingServiceProvider::boot()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace WPEmerge\Routing;
4
5
use WPEmerge;
6
use WPEmerge\Routing\Conditions\ConditionInterface;
7
use WPEmerge\ServiceProviders\ServiceProviderInterface;
8
use Pimple\Container;
9
10
/**
11
 * Provide routing dependencies
12
 *
13
 * @codeCoverageIgnore
14
 */
15
class RoutingServiceProvider implements ServiceProviderInterface {
16
	/**
17
	 * Key=>Class dictionary of condition types
18
	 *
19
	 * @var string[string]
20
	 */
21
	protected static $condition_extensions = [
22
		'url' => \WPEmerge\Routing\Conditions\Url::class,
23
		'custom' => \WPEmerge\Routing\Conditions\Custom::class,
24
		'multiple' => \WPEmerge\Routing\Conditions\Multiple::class,
25
		'post_id' => \WPEmerge\Routing\Conditions\PostId::class,
26
		'post_slug' => \WPEmerge\Routing\Conditions\PostSlug::class,
27
		'post_template' => \WPEmerge\Routing\Conditions\PostTemplate::class,
28
		'post_type' => \WPEmerge\Routing\Conditions\PostType::class,
29
		'query_var' => \WPEmerge\Routing\Conditions\QueryVar::class,
30
		'has_query_var' => \WPEmerge\Routing\Conditions\HasQueryVar::class,
31
	];
32
33
	/**
34
	 * {@inheritDoc}
35
	 */
36
	public function register( $container ) {
37
		$container[ WP_EMERGE_CONFIG_KEY ] = array_merge( [
38
			'global_middleware' => [],
39
		], $container[ WP_EMERGE_CONFIG_KEY ] );
40
41
		$container[ WP_EMERGE_ROUTING_GLOBAL_MIDDLEWARE_KEY ] = apply_filters(
42
			'WP_EMERGE.global_middleware',
43
			$container[ WP_EMERGE_CONFIG_KEY ]['global_middleware']
44
		);
45
46
		$container[ WP_EMERGE_ROUTING_ROUTER_KEY ] = function() {
47
			return new Router();
48
		};
49
50
		foreach ( static::$condition_extensions as $name => $class_name ) {
51
			$container[ WP_EMERGE_ROUTING_CONDITIONS_KEY . $name ] = $class_name;
52
		}
53
54
		WPEmerge::facade( 'Router', RouterFacade::class );
55
	}
56
57
	/**
58
	 * {@inheritDoc}
59
	 */
60
	public function boot( $container ) {
61
		\Router::boot(); // facade
62
	}
63
}
64