PlatformBaseModel::createCpstatRead()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
namespace Ridibooks\Platform\Common;
3
4
use Gnf\db\base;
5
use Ridibooks\Library\DB\ConnectionProvider;
6
use Ridibooks\Library\DB\GnfConnectionProvider;
7
8
abstract class PlatformBaseModel
9
{
10
	/**
11
	 * @var base
12
	 */
13
	protected $db;
14
15
	private function __construct($db)
16
	{
17
		$this->db = $db;
18
	}
19
20
	/**
21
	 * @param base $db
22
	 *
23
	 * @return static
24
	 */
25
	public static function create(base $db = null)
26
	{
27
		if ($db === null) {
28
			$db = GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_WRITE);
29
		}
30
31
		return new static($db);
32
	}
33
34
	/**
35
	 * @return static
36
	 */
37
	public static function createRead()
38
	{
39
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_READ));
40
	}
41
42
	/**
43
	 * @return static
44
	 */
45
	public static function createPlatformOnlyWrite()
46
	{
47
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_ONLY_DB_WRITE));
48
	}
49
50
	/**
51
	 * @return static
52
	 */
53
	public static function createPlatformOnlyRead()
54
	{
55
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_ONLY_DB_READ));
56
	}
57
58
	/**
59
	 * @return static
60
	 */
61
	public static function createPlatformBookWrite()
62
	{
63
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_BOOK_DB_WRITE));
64
	}
65
66
	/**
67
	 * @return static
68
	 */
69
	public static function createPlatformBookRead()
70
	{
71
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_BOOK_DB_READ));
72
	}
73
74
	/**
75
	 * @return static
76
	 */
77
	public static function createCpstatWrite()
78
	{
79
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_CP_STATISTICS));
80
	}
81
82
	/**
83
	 * @return static
84
	 */
85
	public static function createCpstatRead()
86
	{
87
		return self::create(GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_CP_STATISTICS_READ));
88
	}
89
90
	public function transactional(callable $callable)
91
	{
92
		return $this->db->transactional($callable);
93
	}
94
}
95