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

RoutingServiceProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 49
rs 10
c 1
b 0
f 1
wmc 3
lcom 1
cbo 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 20 2
A boot() 0 3 1
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