Completed
Push — master ( 10f95b...bf15d4 )
by Michael
09:02
created

DatabaseServiceProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 6
dl 0
loc 58
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 8 1
A getDbService() 0 11 1
A getDbMigrationsService() 0 7 1
1
<?php
2
/**
3
 * Joomla! Statistics Server
4
 *
5
 * @copyright  Copyright (C) 2013 - 2017 Open Source Matters, Inc. All rights reserved.
6
 * @license    http://www.gnu.org/licenses/gpl-2.0.txt GNU General Public License Version 2 or Later
7
 */
8
9
namespace Joomla\StatsServer\Providers;
10
11
use Joomla\Database\DatabaseDriver;
12
use Joomla\DI\{
13
	Container, ServiceProviderInterface
14
};
15
use League\Flysystem\Adapter\Local;
16
use League\Flysystem\Filesystem;
17
use Joomla\StatsServer\Database\Migrations;
18
19
/**
20
 * Database service provider
21
 *
22
 * @since  1.0
23
 */
24
class DatabaseServiceProvider implements ServiceProviderInterface
25
{
26
	/**
27
	 * Registers the service provider with a DI container.
28
	 *
29
	 * @param   Container  $container  The DI container.
30
	 *
31
	 * @return  void
32
	 *
33
	 * @since   1.0
34
	 */
35 1
	public function register(Container $container)
36
	{
37 1
		$container->alias('db', DatabaseDriver::class)
38 1
			->share(DatabaseDriver::class, [$this, 'getDbService'], true);
39
40 1
		$container->alias('db.migrations', Migrations::class)
41 1
			->share(Migrations::class, [$this, 'getDbMigrationsService'], true);
42 1
	}
43
44
	/**
45
	 * Get the `db` service
46
	 *
47
	 * @param   Container  $container  The DI container.
48
	 *
49
	 * @return  DatabaseDriver
50
	 *
51
	 * @since   1.0
52
	 */
53 1
	public function getDbService(Container $container) : DatabaseDriver
54
	{
55
		/** @var \Joomla\Registry\Registry $config */
56 1
		$config = $container->get('config');
57
58 1
		$db = DatabaseDriver::getInstance((array) $config->get('database'));
59 1
		$db->setDebug($config->get('database.debug'));
60 1
		$db->setLogger($container->get('monolog.logger.database'));
61
62 1
		return $db;
63
	}
64
65
	/**
66
	 * Get the `db.migrations` service
67
	 *
68
	 * @param   Container  $container  The DI container.
69
	 *
70
	 * @return  Migrations
71
	 *
72
	 * @since   1.0
73
	 */
74 1
	public function getDbMigrationsService(Container $container) : Migrations
75
	{
76 1
		return new Migrations(
77 1
			$container->get('db'),
78 1
			new Filesystem(new Local(APPROOT . '/etc'))
79
		);
80
	}
81
}
82