Skip to content

Commit 9923d2d

Browse files
committed
docs for all structs
1 parent f30a21e commit 9923d2d

11 files changed

+172
-77
lines changed

qrm/ActiveRecord/ActiveRecordTrait.php

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

77
use app\qrm\Base\QueryRelationManagerException;
88

9+
/**
10+
* Trait ActiveRecordTrait
11+
* Trait для упрощения построения запросов с помощью QueryRelationManager
12+
* @package app\qrm\ActiveRecord
13+
*/
914
trait ActiveRecordTrait
1015
{
1116
/**

qrm/ActiveRecord/QueryRelationDataProvider.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
use yii\db\Connection;
1010
use yii\db\Query;
1111

12+
/**
13+
* Class QueryRelationDataProvider
14+
* DataProvider для запросов QueryRelationManager
15+
* @package app\qrm\ActiveRecord
16+
*/
1217
class QueryRelationDataProvider extends BaseDataProvider
1318
{
1419
/**

qrm/ActiveRecord/QueryRelationManager.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
class QueryRelationManager extends QueryRelationManagerBase
1919
{
2020
/**
21-
* @param string $relationName
22-
* @param string $relationAlias
23-
* @param string|null $parentAlias
24-
* @param string $joinType
25-
* @param string|null $extraJoinCondition
26-
* @param array|null $extraJoinParams
21+
* Подключение отношения таблицы к запросу, используя данные из модели ActiveRecord
22+
* @param string $relationName имя отношения, прописанное в модели ActiveRecord
23+
* @param string $relationAlias псевдоним присоединяемой таблицы
24+
* @param string|null $parentAlias псевдоним таблицы, к которой очуществляется присоединение (по умолчанию — основная таблица запроса)
25+
* @param string $joinType тип присоединения ("inner", "left", "right")
26+
* @param string|null $extraJoinCondition дополнительные условия присоединения
27+
* @param array|null $extraJoinParams динамические значения дополнительных условий присодинения
2728
* @return $this
2829
* @throws QueryRelationManagerException
2930
*/
@@ -106,7 +107,7 @@ protected function createQuery(): QueryWrapperInterface
106107

107108
/**
108109
* Возвращает список полей таблицы
109-
* @param string $className
110+
* @param string $className имя класса ORM-модели
110111
* @return array
111112
* @throws QueryRelationManagerException
112113
*/
@@ -125,7 +126,7 @@ protected function getTableFields(string $className): array
125126

126127
/**
127128
* Возвращает поля первичного ключа таблицы
128-
* @param string $className
129+
* @param string $className имя класса ORM-модели
129130
* @return array
130131
* @throws QueryRelationManagerException
131132
*/

qrm/ActiveRecord/QueryWrapper.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@
77

88
use app\qrm\Base\QueryWrapperInterface;
99

10+
/**
11+
* Class QueryWrapper
12+
* Класс-обертка для ActiveQuery
13+
* @package app\qrm\ActiveRecord
14+
*/
1015
class QueryWrapper implements QueryWrapperInterface
1116
{
1217
/**
18+
* Объект ActiveQuery
1319
* @var \yii\db\Query
1420
*/
1521
protected $query;

qrm/Base/Helpers/JoinCondition.php

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,71 @@
33

44
namespace app\qrm\Base\Helpers;
55

6-
6+
/**
7+
* Class JoinCondition
8+
* Класс-хранилище данных join-отношения
9+
* @package app\qrm\Base\Helpers
10+
*/
711
class JoinCondition
812
{
13+
/**
14+
* Отношение "один к одному"
15+
*/
916
const TYPE_SINGLE = 1;
17+
18+
/**
19+
* Отношение "один ко многим"
20+
*/
1021
const TYPE_MULTIPLE = 2;
1122

1223
/**
13-
* @var int
24+
* @var int тип отношения (1 — "один к одному" или 2 — "один ко многим")
1425
*/
1526
public $type;
1627

1728
/**
18-
* @var Table
29+
* @var Table присоединяемая таблица
1930
*/
2031
public $table;
2132

2233
/**
23-
* @var Table
34+
* @var Table таблица, к которой осуществляется присоединение
2435
*/
2536
public $joinTo;
2637

2738
/**
28-
* @var array
39+
* @var array основное условие присоединения
40+
* ["поле присоединяемой таблицы" => "поле таблицы, к которой осуществляется присоединение", ...]
2941
*/
3042
public $joinCondition;
3143

3244
/**
33-
* @var string
45+
* @var string способ присоединения ("inner", "left", "right")
3446
*/
3547
public $joinType;
3648

3749
/**
38-
* @var string
50+
* @var string дополнительное условие присоединения
51+
* Например: "and some_field = :some_value"
3952
*/
4053
public $extraJoinCondition;
4154

4255
/**
43-
* @var array
56+
* @var array значения параметров дополнительного условия присоединения
57+
* Например: [":some_value" => "123", ...]
4458
*/
4559
public $extraJoinParams;
4660

61+
/**
62+
* JoinCondition constructor.
63+
* @param int $type тип отношения (1 — "один к одному" или 2 — "один ко многим")
64+
* @param Table $table таблица, к которой осуществляется присоединение
65+
* @param Table $joinTo таблица, к которой осуществляется присоединение
66+
* @param array $joinCondition основное условие присоединения
67+
* @param string $joinType способ присоединения ("inner", "left", "right")
68+
* @param string|null $extraJoinCondition string дополнительное условие присоединения
69+
* @param array $extraJoinParams значения параметров дополнительного условия присоединения
70+
*/
4771
public function __construct(
4872
int $type, Table $table, Table $joinTo, array $joinCondition,
4973
string $joinType = 'left', ?string $extraJoinCondition = null, array $extraJoinParams = []
@@ -58,6 +82,10 @@ public function __construct(
5882
$this->extraJoinParams = $extraJoinParams;
5983
}
6084

85+
/**
86+
* Возвращает часть SQL-запроса, содержащую условия присоединения таблицы
87+
* @return string
88+
*/
6189
public function stringify(): string
6290
{
6391
$joins = [];

qrm/Base/Helpers/JoinConditionManager.php renamed to qrm/Base/Helpers/JoinConditionCollection.php

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,26 @@
66

77
use app\qrm\Base\QueryRelationManagerException;
88

9-
class JoinConditionManager
9+
/**
10+
* Class JoinConditionManager
11+
* Класс-коллекция объектов условий присоединения
12+
* @package app\qrm\Base\Helpers
13+
*/
14+
class JoinConditionCollection
1015
{
1116
/**
12-
* @var JoinCondition[]
17+
* @var JoinCondition[] карта объектов условий присоединения по псевдониму присоединяемой таблицы
1318
*/
1419
protected $mapByJoinAs = [];
1520

1621
/**
17-
* @var JoinCondition[][]
22+
* @var JoinCondition[][] катра спика объектов условий присоединения по псевдониму таблицы, к которой осуществляется присоединение
1823
*/
1924
protected $matrixByJoinTo = [];
2025

2126
/**
22-
* @param JoinCondition $condition
27+
* Добавление объекта условия присоединения таблицы
28+
* @param JoinCondition $condition условие присоединения таблицы
2329
* @return $this
2430
* @throws QueryRelationManagerException
2531
*/
@@ -42,7 +48,8 @@ public function add(JoinCondition $condition): self
4248
}
4349

4450
/**
45-
* @param string $joinAs
51+
* Получение объекта условия присоединения таблицы по ее псевдониму в запросе
52+
* @param string $joinAs псевдоним присоединяемой таблицы
4653
* @return JoinCondition
4754
* @throws QueryRelationManagerException
4855
*/
@@ -55,7 +62,8 @@ public function byJoinAs(string $joinAs): JoinCondition
5562
}
5663

5764
/**
58-
* @param string $joinTo
65+
* Получение списка объекта условий присоединения таблиц по псевдониму таблицы, к которой осуществляется присоединение
66+
* @param string $joinTo псевдоним таблицы, к которой осуществляется присоединение
5967
* @return JoinCondition[]
6068
*/
6169
public function byJoinTo(string $joinTo): array
@@ -67,7 +75,8 @@ public function byJoinTo(string $joinTo): array
6775
}
6876

6977
/**
70-
* @param callable $callback
78+
* Перебор коллекции
79+
* @param callable $callback функция, которая будет запущена для каждого элемента коллекции с передачей оного в качестве аргумента
7180
* @return $this
7281
*/
7382
public function each(callable $callback): self

qrm/Base/Helpers/Table.php

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,56 +6,62 @@
66

77
use app\qrm\Base\QueryRelationManagerException;
88

9+
/**
10+
* Class Table
11+
* Класс-хранилище данных о таблице, которая участвует в запросе
12+
* @package app\qrm\Base\Helpers
13+
*/
914
class Table
1015
{
1116
/**
12-
* @var string
17+
* @var string ORM-класс, представляющий таблицу
1318
*/
1419
public $className;
1520

1621
/**
17-
* @var string
22+
* @var string имя таблицы в БД
1823
*/
1924
public $name;
2025

2126
/**
22-
* @var string
27+
* @var string псевдоним таблицы в запросе
2328
*/
2429
public $alias;
2530

2631
/**
27-
* @var string[]
32+
* @var string[] поля первичного ключа таблицы
2833
*/
2934
public $primaryKey;
3035

3136
/**
32-
* @var string
37+
* @var string поле-контейнер у родительского элемента, в который будет помещен элемент этой таблицы
3338
*/
3439
public $containerFieldAlias;
3540

3641
/**
37-
* @var array
42+
* @var array карта полей таблицы ["`псевдонимТаблицы`.`имяПоля`" => "псевдонимТаблицы_имяПоля", ...]
3843
*/
3944
protected $fieldMap = [];
4045

4146
/**
42-
* @var array
47+
* @var array обратная карта полей таблицы ["псевдонимТаблицы_имяПоля" => "имяПоля"]
4348
*/
4449
protected $fieldMapReverse = [];
4550

4651
/**
47-
* @var array
52+
* @var array обратная карта полей, составляющих первичный ключ таблицы
53+
* Пример: ["псевдонимТаблицы_имяПоля" => "имяПоля"]
4854
*/
4955
protected $pkFieldMapReverse = [];
5056

5157
/**
5258
* Table constructor.
53-
* @param string $className
54-
* @param string $name
55-
* @param string $alias
56-
* @param array $fields
57-
* @param array $primaryKey
58-
* @param string $containerFieldAlias
59+
* @param string $className ORM-класс, представляющий таблицу
60+
* @param string $name имя таблицы в БД
61+
* @param string $alias псевдоним таблицы в запросе
62+
* @param array $fields список имен полей таблицы
63+
* @param array $primaryKey поля первичного ключа таблицы
64+
* @param string $containerFieldAlias поле-контейнер у родительского элемента, в который будет помещен элемент этой таблицы
5965
* @throws QueryRelationManagerException
6066
*/
6167
public function __construct(
@@ -84,6 +90,7 @@ public function __construct(
8490
}
8591

8692
/**
93+
* Возвращает карту полей таблицы ["`псевдонимТаблицы`.`имяПоля`" => "псевдонимТаблицы_имяПоля", ...]
8794
* @return string[]
8895
*/
8996
public function getFieldMap(): array
@@ -92,7 +99,8 @@ public function getFieldMap(): array
9299
}
93100

94101
/**
95-
* @param string $fieldPrefixed
102+
* Возвращает имя поля по его имени с префиксом
103+
* @param string $fieldPrefixed имя поля с префиксом (псевдонимом таблицы)
96104
* @return string
97105
*/
98106
public function getField(string $fieldPrefixed): string
@@ -101,6 +109,7 @@ public function getField(string $fieldPrefixed): string
101109
}
102110

103111
/**
112+
* Возвращает строку, состоящую из полей первичного ключа таблицы, разделенных дефисом
104113
* @return string
105114
*/
106115
public function stringifyPrimaryKey(): string
@@ -109,12 +118,21 @@ public function stringifyPrimaryKey(): string
109118
}
110119

111120
/**
112-
* @param array $row
113-
* @param JoinConditionManager $conditionManager
114-
* @return array
121+
* Получение данных из кортежа, представляющего из себя строку из результата запроса к БД
122+
* @param array $row строка из результата запроса SELECT
123+
* @param JoinConditionCollection $conditionCollection коллекция условий запроса
124+
* @return array [
125+
* "данные из строки, соотвествующие таблице",
126+
* "значения полей первичного ключа через дефис",
127+
* "псевдоним этой таблицы",
128+
* "псевдоним таблицы, к которой осуществляется присоединение",
129+
* "значения полей внешнего ключа через дефис",
130+
* "поле-контейнер у родительского элемента, в который будет помещен элемент этой таблицы",
131+
* "тип отношения к родительской таблице (1 — "один к одному" или 2 — "один ко многим")"
132+
* ]
115133
* @throws QueryRelationManagerException
116134
*/
117-
public function getDataFromRow(array $row, JoinConditionManager $conditionManager): array
135+
public function getDataFromRow(array $row, JoinConditionCollection $conditionCollection): array
118136
{
119137
$item = [];
120138

@@ -125,7 +143,7 @@ public function getDataFromRow(array $row, JoinConditionManager $conditionManage
125143
}
126144

127145
/** @var JoinCondition $cond */
128-
foreach($conditionManager->byJoinTo($this->alias) as $cond) {
146+
foreach($conditionCollection->byJoinTo($this->alias) as $cond) {
129147
switch($cond->type) {
130148
case JoinCondition::TYPE_MULTIPLE:
131149
$item[$cond->table->containerFieldAlias] = [];
@@ -141,7 +159,7 @@ public function getDataFromRow(array $row, JoinConditionManager $conditionManage
141159
$primaryKeyValue = $this->stringifyPrimaryKeyValue($row);
142160

143161
try {
144-
$cond = $conditionManager->byJoinAs($this->alias);
162+
$cond = $conditionCollection->byJoinAs($this->alias);
145163
$joinTo = $cond->joinTo;
146164
$aliasTo = $joinTo->alias;
147165
$foreignKeyValue = $joinTo->stringifyPrimaryKeyValue($row);
@@ -157,6 +175,7 @@ public function getDataFromRow(array $row, JoinConditionManager $conditionManage
157175
}
158176

159177
/**
178+
* Получение списка полей первичного ключа таблицы с префиксом-псевдонимом таблицы через точку
160179
* @return array
161180
*/
162181
public function getPrimaryKeyForSelect(): array
@@ -170,7 +189,8 @@ public function getPrimaryKeyForSelect(): array
170189
}
171190

172191
/**
173-
* @param array $row
192+
* Получение значений полей первичного ключа таблицы в виде строки через дефис
193+
* @param array $row строка из результата запроса SELECT
174194
* @return string
175195
* @throws QueryRelationManagerException
176196
*/

0 commit comments

Comments
 (0)