Skip to content

Commit 47bdce0

Browse files
committed
Instance replaced by di container in App traits
1 parent e638096 commit 47bdce0

File tree

3 files changed

+70
-34
lines changed

3 files changed

+70
-34
lines changed

src/Integrate/AppDbConfigTrait.php

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
use Evas\Orm\Integrate\Exception\DatabaseConfigNotFoundException;
88

99

10-
if (!defined('EVAS_DATABASE_CONFIG_PATH')) define('EVAS_DATABASE_CONFIG_PATH', 'config/db.php');
10+
if (!defined('EVAS_DATABASE_CONFIG_PATH')) {
11+
define('EVAS_DATABASE_CONFIG_PATH', 'config/private/db.php');
12+
}
1113
if (!defined('EVAS_DATABASE_CONFIG')) define('EVAS_DATABASE_CONFIG', null);
1214

1315
/**
@@ -17,24 +19,14 @@
1719
*/
1820
trait AppDbConfigTrait
1921
{
20-
/**
21-
* @var string путь к конфигу базы данных
22-
*/
23-
protected $dbConfigPath = EVAS_DATABASE_CONFIG_PATH;
24-
25-
/**
26-
* @var array конфиг базы данных
27-
*/
28-
protected $dbConfig = EVAS_DATABASE_CONFIG;
29-
3022
/**
3123
* Установка пути к конфигу базы данных.
3224
* @param string путь
3325
* @return self
3426
*/
3527
public static function setDbConfigPath(string $path)
3628
{
37-
return static::instanceSet('dbConfigPath', $path);
29+
return static::set('dbConfigPath', $path);
3830
}
3931

4032
/**
@@ -43,7 +35,10 @@ public static function setDbConfigPath(string $path)
4335
*/
4436
public static function getDbConfigPath(): string
4537
{
46-
return static::instanceGet('dbConfigPath');
38+
if (!static::has('dbConfigPath')) {
39+
static::set('dbConfigPath', EVAS_DATABASE_CONFIG_PATH);
40+
}
41+
return static::get('dbConfigPath');
4742
}
4843

4944
/**
@@ -53,7 +48,7 @@ public static function getDbConfigPath(): string
5348
*/
5449
public static function setDbConfig(array $config)
5550
{
56-
return static::instanceSet('dbConfig', $config);
51+
return static::set('dbConfig', $config);
5752
}
5853

5954
/**
@@ -66,7 +61,7 @@ public static function loadDbConfig()
6661
$config = static::loadByApp(static::getDbConfigPath());
6762
if (! $config) throw new DatabaseConfigNotFoundException;
6863
// устанавливаем и возвращаем конфиг базы
69-
return static::setDbConfig($config)->instanceGet('dbConfig');
64+
return static::setDbConfig($config)->getDbConfig();
7065
}
7166

7267
/**
@@ -76,9 +71,13 @@ public static function loadDbConfig()
7671
*/
7772
public static function getDbConfig()
7873
{
79-
if (!static::instanceHas('dbConfig')) {
80-
static::loadDbConfig();
74+
if (!static::has('dbConfig')) {
75+
if (is_array(EVAS_DATABASE_CONFIG)) {
76+
static::set('dbConfig', EVAS_DATABASE_CONFIG);
77+
} else {
78+
static::loadDbConfig();
79+
}
8180
}
82-
return static::instanceGet('dbConfig');
81+
return static::get('dbConfig');
8382
}
8483
}

src/Integrate/AppDbTrait.php

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,26 @@ trait AppDbTrait
2626
use AppDbConfigTrait;
2727

2828
/**
29-
* @var string класс для соединения с базой данных.
29+
* Установка класса базы данных.
30+
* @param string
31+
* @return self
3032
*/
31-
public static $databaseClass = EVAS_DATABASE_CLASS;
33+
public static function setDbClass(string $dbClass)
34+
{
35+
return static::set('dbClass', $dbClass);
36+
}
3237

3338
/**
34-
* @var Database соединение
39+
* Получение класса базы данных.
40+
* @param string
3541
*/
36-
protected $db;
42+
public static function getDbClass(): string
43+
{
44+
if (!static::has('dbClass')) {
45+
static::set('dbClass', EVAS_DATABASE_CLASS);
46+
}
47+
return static::get('dbClass');
48+
}
3749

3850
/**
3951
* Установка соединения.
@@ -42,7 +54,7 @@ trait AppDbTrait
4254
*/
4355
public static function setDb(Database $db)
4456
{
45-
return static::instanceSet('db', $db);
57+
return static::set('db', $db);
4658
}
4759

4860
/**
@@ -52,7 +64,8 @@ public static function setDb(Database $db)
5264
*/
5365
public static function initDb(array $params)
5466
{
55-
return static::setDb(new static::$databaseClass($params));
67+
$dbClass = static::getDbClass();
68+
return static::setDb(new $dbClass($params));
5669
}
5770

5871
/**
@@ -62,10 +75,10 @@ public static function initDb(array $params)
6275
*/
6376
public static function getDb()
6477
{
65-
if (!static::instanceHas('db')) {
78+
if (!static::has('db')) {
6679
throw new DatabaseNotInitializedException;
6780
}
68-
return static::instanceGet('db');
81+
return static::get('db');
6982
}
7083

7184
/**
@@ -75,9 +88,9 @@ public static function getDb()
7588
*/
7689
public static function db()
7790
{
78-
if (!static::instanceHas('db')) {
91+
if (!static::has('db')) {
7992
static::initDb(static::getDbConfig());
8093
}
81-
return static::getDb('db');
94+
return static::getDb();
8295
}
8396
}

src/Integrate/AppDbsTrait.php

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,18 @@
66

77
use Evas\Base\Helpers\PhpHelper;
88
use Evas\Orm\Base\Database;
9+
use Evas\Orm\DatabasesManager;
910
use Evas\Orm\Integrate\AppDbConfigTrait;
10-
use Evas\Orm\Integrate\DatabasesManager;
1111
use Evas\Orm\Integrate\Exception\DatabaseConfigNotFoundException;
1212
use Evas\Orm\Integrate\Exception\DatabaseNotInitializedException;
1313

14+
/**
15+
* Константы для параметров соединения по умолчанию.
16+
*/
17+
if (!defined('EVAS_DATABASES_MANAGER_CLASS')) {
18+
define('EVAS_DATABASES_MANAGER_CLASS', DatabasesManager::class);
19+
}
20+
1421
/**
1522
* Расширение поддержки множества баз данных приложения.
1623
* @author Egor Vasyakin <[email protected]>
@@ -24,20 +31,37 @@ trait AppDbsTrait
2431
use AppDbConfigTrait;
2532

2633
/**
27-
* @var DatabasesManager мененджер соединений
34+
* Установка класса менеджера баз данных.
35+
* @param string
36+
* @return self
2837
*/
29-
protected $dbs;
38+
public static function setDbsManagerClass(string $dbsManagerClass)
39+
{
40+
return static::set('dbsManagerClass', $dbsManagerClass);
41+
}
42+
43+
/**
44+
* Получение класса менеджера баз данных.
45+
* @param string
46+
*/
47+
public static function getDbsManagerClass(): string
48+
{
49+
if (!static::has('dbsManagerClass')) {
50+
static::set('dbsManagerClass', EVAS_DATABASES_MANAGER_CLASS);
51+
}
52+
return static::get('dbsManagerClass');
53+
}
3054

3155
/**
3256
* Получение менеджера соединений.
3357
* @return DatabasesManager
3458
*/
3559
public static function getDatabasesManager()
3660
{
37-
if (!static::instanceHas('dbs')) {
38-
static::instanceSet('dbs', new DatabasesManager);
61+
if (!static::has('dbs')) {
62+
static::set('dbs', new DatabasesManager);
3963
}
40-
return static::instanceGet('dbs');
64+
return static::get('dbs');
4165
}
4266

4367
/**

0 commit comments

Comments
 (0)