1: <?php
2:
3: namespace PHPixie\ORM;
4:
5: class Steps
6: {
7: 8: 9:
10: protected $ormBuilder;
11:
12: public function __construct($ormBuilder)
13: {
14: $this->ormBuilder = $ormBuilder;
15: }
16:
17: public function query($query)
18: {
19: return new Steps\Step\Query($query);
20: }
21:
22: public function count($query)
23: {
24: return new Steps\Step\Query\Count($query);
25: }
26:
27: public function iteratorResult($query)
28: {
29: return new Steps\Step\Query\Result\Iterator($query);
30: }
31:
32: public function reusableResult($query)
33: {
34: return new Steps\Step\Query\Result\Reusable($query);
35: }
36:
37: public function resultFilter($result, $fields)
38: {
39: return new Steps\Result\Filter($result, $fields);
40: }
41:
42: public function in($placeholder, $placeholderField, $resultStep, $resultField)
43: {
44: return new Steps\Step\In($placeholder, $placeholderField, $resultStep, $resultField);
45: }
46:
47: public function pivotCartesian($fields, $resultFiters)
48: {
49: return new Steps\Step\Pivot\Cartesian($fields, $resultFiters);
50: }
51:
52: public function batchInsert($insertQuery, $dataStep)
53: {
54: $queryPlanner = $this->ormBuilder->planners()->query();
55: return new Steps\Step\Query\Insert\Batch($queryPlanner, $insertQuery, $dataStep);
56: }
57:
58: public function uniqueDataInsert($dataStep, $selectQuery)
59: {
60: return new Steps\Step\Query\Insert\Batch\Data\Unique($dataStep, $selectQuery);
61: }
62:
63: public function updateMap($updateQuery, $map, $resultStep)
64: {
65: return new Steps\Step\Update\Map($updateQuery, $map, $resultStep);
66: }
67: }
68: