Completed
Push — master ( 416cb1...222de5 )
by Anton
03:44
created

Database   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3
Metric Value
wmc 7
lcom 0
cbo 3
dl 0
loc 52
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
C __invoke() 0 47 7
1
<?php
2
3
namespace Modules\Install\Controller {
4
5
	use Modules\Install, DB, Exception, Explorer;
6
7
	class Database {
8
9
		# Invoker
10
11
		public function __invoke(array $post) {
12
13
			# Declare variables
14
15
			$server = ''; $user = ''; $password = ''; $name = '';
16
17
			# Extract post array
18
19
			extract($post);
20
21
			# Connect to DB
22
23
			try { DB::connect($server, $user, $password, $name); }
24
25
			catch (Exception\DBConnect $error) { return 'INSTALL_ERROR_DATABASE_CONNECT'; }
26
27
			catch (Exception\DBSelect $error) { return 'INSTALL_ERROR_DATABASE_SELECT'; }
28
29
			catch (Exception\DBCharset $error) { return 'INSTALL_ERROR_DATABASE_CHARSET'; }
30
31
			# Create tables
32
33
			if (!Install\Utils\Tables::create()) return 'INSTALL_ERROR_DATABASE_TABLES_CREATE';
34
35
			# Fill tables
36
37
			if (!Install\Utils\Tables::fill()) return 'INSTALL_ERROR_DATABASE_TABLES_FILL';
38
39
			# Save system file
40
41
			$system = [];
42
43
			$system['database']['server']       = $server;
44
			$system['database']['user']         = $user;
45
			$system['database']['password']     = $password;
46
			$system['database']['name']         = $name;
47
48
			$system['time'] = REQUEST_TIME;
49
50
			$system_file = (DIR_SYSTEM_DATA . 'System.json'); $system = json_encode($system, JSON_PRETTY_PRINT);
51
52
			if (false === Explorer::save($system_file, $system, true)) return 'INSTALL_ERROR_SYSTEM';
53
54
			# ------------------------
55
56
			return true;
57
		}
58
	}
59
}
60