1 | <?php |
||
10 | class Builder extends BaseBuilder |
||
11 | { |
||
12 | /** |
||
13 | * Use cassandra filtering |
||
14 | * |
||
15 | * @var bool |
||
16 | */ |
||
17 | public $allowFiltering = false; |
||
18 | |||
19 | /** |
||
20 | * Size of fetched page |
||
21 | * |
||
22 | * @var null|int |
||
23 | */ |
||
24 | protected $pageSize = null; |
||
25 | |||
26 | /** |
||
27 | * Pagination state token |
||
28 | * |
||
29 | * @var null|string |
||
30 | */ |
||
31 | protected $paginationStateToken = null; |
||
32 | |||
33 | /** |
||
34 | * Indicate what amount of pages should be fetched |
||
35 | * all or single |
||
36 | * |
||
37 | * @var bool |
||
38 | */ |
||
39 | protected $fetchAllResults = true; |
||
40 | |||
41 | /** |
||
42 | * @inheritdoc |
||
43 | */ |
||
44 | 43 | public function __construct(Connection $connection, Grammar $grammar = null, Processor $processor = null) |
|
50 | |||
51 | /** |
||
52 | * Support "allow filtering" |
||
53 | */ |
||
54 | 1 | public function allowFiltering($bool = true) { |
|
55 | 1 | $this->allowFiltering = (bool) $bool; |
|
56 | |||
57 | 1 | return $this; |
|
58 | } |
||
59 | |||
60 | /** |
||
61 | * Insert a new record into the database. |
||
62 | * |
||
63 | * @param array $values |
||
64 | * @return bool |
||
65 | */ |
||
66 | 36 | public function insert(array $values) |
|
100 | |||
101 | /** |
||
102 | * Execute the query as a "select" statement. |
||
103 | * |
||
104 | * @param array $columns |
||
105 | * |
||
106 | * @return \Illuminate\Support\Collection |
||
107 | */ |
||
108 | 39 | public function get($columns = ['*']) |
|
109 | { |
||
110 | 39 | $original = $this->columns; |
|
111 | |||
112 | 39 | if (is_null($original)) { |
|
113 | 39 | $this->columns = $columns; |
|
114 | } |
||
115 | |||
116 | //Set up custom options |
||
117 | 39 | $options = []; |
|
118 | 39 | if ($this->pageSize !== null && (int) $this->pageSize > 0) { |
|
119 | 9 | $options['page_size'] = (int) $this->pageSize; |
|
120 | } |
||
121 | 39 | if ($this->paginationStateToken !== null) { |
|
122 | 1 | $options['paging_state_token'] = $this->paginationStateToken; |
|
123 | } |
||
124 | |||
125 | // Process select with custom options |
||
126 | 39 | $results = $this->processor->processSelect($this, $this->runSelect($options)); |
|
127 | |||
128 | // Get results from all pages |
||
129 | 39 | $collection = new Collection($results); |
|
130 | |||
131 | 39 | if ($this->fetchAllResults) { |
|
132 | 32 | while (!$collection->isLastPage()) { |
|
133 | 2 | $collection = $collection->appendNextPage(); |
|
134 | } |
||
135 | } |
||
136 | |||
137 | 39 | $this->columns = $original; |
|
138 | |||
139 | 39 | return $collection; |
|
140 | } |
||
141 | |||
142 | /** |
||
143 | * Run the query as a "select" statement against the connection. |
||
144 | * |
||
145 | * @param array $options |
||
146 | * |
||
147 | * @return array |
||
148 | */ |
||
149 | 39 | protected function runSelect(array $options = []) |
|
155 | |||
156 | /** |
||
157 | * Set pagination state token to fetch |
||
158 | * next page |
||
159 | * |
||
160 | * @param string $token |
||
161 | * |
||
162 | * @return Builder |
||
163 | */ |
||
164 | 1 | public function setPaginationStateToken($token = null) |
|
170 | |||
171 | /** |
||
172 | * Set page size |
||
173 | * |
||
174 | * @param int $pageSize |
||
175 | * |
||
176 | * @return Builder |
||
177 | */ |
||
178 | 9 | public function setPageSize($pageSize = null) |
|
188 | |||
189 | /** |
||
190 | * Get collection with single page results |
||
191 | * |
||
192 | * @param $columns array |
||
193 | * |
||
194 | * @return \Illuminate\Support\Collection |
||
195 | */ |
||
196 | 8 | public function getPage($columns = ['*']) |
|
206 | } |
||
207 |
This check marks calls to methods that do not seem to exist on an object.
This is most likely the result of a method being renamed without all references to it being renamed likewise.