AdminBaseModel::transactional()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace Ridibooks\Platform\Common\Base;
4
5
use Ridibooks\Library\DB\ConnectionProvider;
6
use Ridibooks\Library\DB\GnfConnectionProvider;
7
8
class AdminBaseModel
9
{
10
	protected $db;
11
	protected $read_db;
12
13
	public function __construct()
14
	{
15
		$this->db = self::getDb();
16
		$this->read_db = self::getReadDb();
17
	}
18
19
	protected static function getDb()
20
	{
21
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_WRITE);
22
	}
23
24
	protected static function getReadDb()
25
	{
26
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_READ);
27
	}
28
29
	protected static function getPlatformOnlyWritableDb()
30
	{
31
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_ONLY_DB_WRITE);
32
	}
33
34
	protected static function getPlatformOnlyReadDb()
35
	{
36
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_PLATFORM_ONLY_DB_READ);
37
	}
38
39
	protected static function getCpWritableDb()
40
	{
41
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_CP_STATISTICS);
42
	}
43
44
	protected static function getCpReadDb()
45
	{
46
		return GnfConnectionProvider::getConnection(ConnectionProvider::CONNECTION_GROUP_CP_STATISTICS_READ);
47
	}
48
49
	/**
50
	 * 트랜잭셔널 (모델이 아닌 서비스에서 명시적인 트랜잭션이 필요할 경우 사용)
51
	 * @param $func callable
52
	 * @return bool
53
	 * @throws \Exception
54
	 */
55
	public static function transactional($func)
56
	{
57
		$db = self::getDb();
58
		return $db->transactional($func);
59
	}
60
}
61