Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | n/a |
0 / 0 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
1 | <?php |
2 | /** |
3 | * Pop PHP Framework (http://www.popphp.org/) |
4 | * |
5 | * @link https://github.com/popphp/popphp-framework |
6 | * @author Nick Sagona, III <dev@nolainteractive.com> |
7 | * @copyright Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com) |
8 | * @license http://www.popphp.org/license New BSD License |
9 | */ |
10 | |
11 | /** |
12 | * @namespace |
13 | */ |
14 | namespace Pop\Db\Adapter; |
15 | |
16 | use Pop\Db\Sql; |
17 | |
18 | /** |
19 | * Db adapter interface |
20 | * |
21 | * @category Pop |
22 | * @package Pop\Db |
23 | * @author Nick Sagona, III <dev@nolainteractive.com> |
24 | * @copyright Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com) |
25 | * @license http://www.popphp.org/license New BSD License |
26 | * @version 6.5.0 |
27 | */ |
28 | interface AdapterInterface |
29 | { |
30 | |
31 | /** |
32 | * Connect to the database |
33 | * |
34 | * @param array $options |
35 | * @return AdapterInterface |
36 | */ |
37 | public function connect(array $options = []): AdapterInterface; |
38 | |
39 | /** |
40 | * Set database connection options |
41 | * |
42 | * @param array $options |
43 | * @return AdapterInterface |
44 | */ |
45 | public function setOptions(array $options): AdapterInterface; |
46 | |
47 | /** |
48 | * Get database connection options |
49 | * |
50 | * @return array |
51 | */ |
52 | public function getOptions(): array; |
53 | |
54 | /** |
55 | * Has database connection options |
56 | * |
57 | * @return bool |
58 | */ |
59 | public function hasOptions(): bool; |
60 | |
61 | /** |
62 | * Begin a transaction |
63 | * |
64 | * @return AdapterInterface |
65 | */ |
66 | public function beginTransaction(): AdapterInterface; |
67 | |
68 | /** |
69 | * Commit a transaction |
70 | * |
71 | * @return AdapterInterface |
72 | */ |
73 | public function commit(): AdapterInterface; |
74 | |
75 | /** |
76 | * Rollback a transaction |
77 | * |
78 | * @return AdapterInterface |
79 | */ |
80 | public function rollback(): AdapterInterface; |
81 | |
82 | /** |
83 | * Check if adapter is in the middle of an open transaction |
84 | * |
85 | * @return bool |
86 | */ |
87 | public function isTransaction(): bool; |
88 | |
89 | /** |
90 | * Get transaction depth |
91 | * |
92 | * @return int |
93 | */ |
94 | public function getTransactionDepth(): int; |
95 | |
96 | /** |
97 | * Execute complete transaction with the DB adapter |
98 | * |
99 | * @param mixed $callable |
100 | * @param mixed $params |
101 | * @throws \Exception |
102 | * @return void |
103 | */ |
104 | public function transaction(mixed $callable, mixed $params = null): void; |
105 | |
106 | /** |
107 | * Check if transaction is success |
108 | * |
109 | * @return bool |
110 | */ |
111 | public function isSuccess(): bool; |
112 | |
113 | /** |
114 | * Directly execute a SELECT SQL query or prepared statement and return the results |
115 | * |
116 | * @param string|Sql $sql |
117 | * @param array $params |
118 | * @return array |
119 | */ |
120 | public function select(string|Sql $sql, array $params = []): array; |
121 | |
122 | /** |
123 | * Directly execute an INSERT SQL query or prepared statement and return the results |
124 | * |
125 | * @param string|Sql $sql |
126 | * @param array $params |
127 | * @return int |
128 | */ |
129 | public function insert(string|Sql $sql, array $params = []): int; |
130 | |
131 | /** |
132 | * Directly execute an UPDATE SQL query or prepared statement and return the results |
133 | * |
134 | * @param string|Sql $sql |
135 | * @param array $params |
136 | * @return int |
137 | */ |
138 | public function update(string|Sql $sql, array $params = []): int; |
139 | |
140 | /** |
141 | * Directly execute a DELETE SQL query or prepared statement and return the results |
142 | * |
143 | * @param string|Sql $sql |
144 | * @param array $params |
145 | * @return int |
146 | */ |
147 | public function delete(string|Sql $sql, array $params = []): int; |
148 | |
149 | /** |
150 | * Execute a SQL query or prepared statement with params |
151 | * |
152 | * @param string|Sql $sql |
153 | * @param array $params |
154 | * @return AdapterInterface |
155 | */ |
156 | public function executeSql(string|Sql $sql, array $params = []): AdapterInterface; |
157 | |
158 | /** |
159 | * Execute a SQL query directly |
160 | * |
161 | * @param mixed $sql |
162 | * @return AdapterInterface |
163 | */ |
164 | public function query(mixed $sql): AdapterInterface; |
165 | |
166 | /** |
167 | * Prepare a SQL query. |
168 | * |
169 | * @param mixed $sql |
170 | * @return AdapterInterface |
171 | */ |
172 | public function prepare(mixed $sql): AdapterInterface; |
173 | |
174 | /** |
175 | * Bind parameters to a prepared SQL query |
176 | * |
177 | * @param array $params |
178 | * @return AdapterInterface |
179 | */ |
180 | public function bindParams(array $params): AdapterInterface; |
181 | |
182 | /** |
183 | * Execute a prepared SQL query |
184 | * |
185 | * @return AdapterInterface |
186 | */ |
187 | public function execute(): AdapterInterface; |
188 | |
189 | /** |
190 | * Fetch and return a row from the result |
191 | * |
192 | * @return mixed |
193 | */ |
194 | public function fetch(): mixed; |
195 | |
196 | /** |
197 | * Fetch and return all rows from the result |
198 | * |
199 | * @return array |
200 | */ |
201 | public function fetchAll(): array; |
202 | |
203 | /** |
204 | * Create SQL builder |
205 | * |
206 | * @return \Pop\Db\Sql |
207 | */ |
208 | public function createSql(): \Pop\Db\Sql; |
209 | |
210 | /** |
211 | * Create Schema builder |
212 | * |
213 | * @return \Pop\Db\Sql\Schema |
214 | */ |
215 | public function createSchema(): \Pop\Db\Sql\Schema; |
216 | |
217 | /** |
218 | * Determine whether or not connected |
219 | * |
220 | * @return bool |
221 | */ |
222 | public function isConnected(): bool; |
223 | |
224 | /** |
225 | * Get the connection object/resource |
226 | * |
227 | * @return mixed |
228 | */ |
229 | public function getConnection(): mixed; |
230 | |
231 | /** |
232 | * Determine whether or not a statement resource exists |
233 | * |
234 | * @return bool |
235 | */ |
236 | public function hasStatement(): bool; |
237 | |
238 | /** |
239 | * Get the statement object/resource |
240 | * |
241 | * @return mixed |
242 | */ |
243 | public function getStatement(): mixed; |
244 | |
245 | /** |
246 | * Determine whether or not a result resource exists |
247 | * |
248 | * @return bool |
249 | */ |
250 | public function hasResult(): bool; |
251 | |
252 | /** |
253 | * Get the result object/resource |
254 | * |
255 | * @return mixed |
256 | */ |
257 | public function getResult(): mixed; |
258 | |
259 | /** |
260 | * Add query listener to the adapter |
261 | * |
262 | * @param mixed $listenerclear |
263 | * @return mixed |
264 | */ |
265 | public function listen(mixed $listener): mixed; |
266 | |
267 | /** |
268 | * Set query profiler |
269 | * |
270 | * @param Profiler\Profiler $profiler |
271 | * @return AdapterInterface |
272 | */ |
273 | public function setProfiler(Profiler\Profiler $profiler): AdapterInterface; |
274 | |
275 | /** |
276 | * Get query profiler |
277 | * |
278 | * @return Profiler\Profiler|null |
279 | */ |
280 | public function getProfiler(): Profiler\Profiler|null; |
281 | |
282 | /** |
283 | * Clear query profiler |
284 | * |
285 | * @return AdapterInterface |
286 | */ |
287 | public function clearProfiler(): AdapterInterface; |
288 | |
289 | /** |
290 | * Determine whether or not there is an error |
291 | * |
292 | * @return bool |
293 | */ |
294 | public function hasError(): bool; |
295 | |
296 | /** |
297 | * Set the error |
298 | * |
299 | * @param string $error |
300 | * @return AdapterInterface |
301 | */ |
302 | public function setError(string $error): AdapterInterface; |
303 | |
304 | /** |
305 | * Get the error |
306 | * |
307 | * @return mixed |
308 | */ |
309 | public function getError(): mixed; |
310 | |
311 | /** |
312 | * Throw a database error exception |
313 | * |
314 | * @throws Exception |
315 | * @return void |
316 | */ |
317 | public function throwError(): void; |
318 | |
319 | /** |
320 | * Clear the error |
321 | * |
322 | * @return AdapterInterface |
323 | */ |
324 | public function clearError(): AdapterInterface; |
325 | |
326 | /** |
327 | * Disconnect from the database |
328 | * |
329 | * @return void |
330 | */ |
331 | public function disconnect(): void; |
332 | |
333 | /** |
334 | * Escape the value |
335 | * |
336 | * @param ?string $value |
337 | * @return string |
338 | */ |
339 | public function escape(?string $value = null): string; |
340 | |
341 | /** |
342 | * Return the last ID of the last query |
343 | * |
344 | * @return int |
345 | */ |
346 | public function getLastId(): int; |
347 | |
348 | /** |
349 | * Return the number of rows from the last query |
350 | * |
351 | * @return int |
352 | */ |
353 | public function getNumberOfRows(): int; |
354 | |
355 | /** |
356 | * Return the number of affected rows from the last query |
357 | * |
358 | * @return int |
359 | */ |
360 | public function getNumberOfAffectedRows(): int; |
361 | |
362 | /** |
363 | * Return the database version |
364 | * |
365 | * @return string |
366 | */ |
367 | public function getVersion(): string; |
368 | |
369 | /** |
370 | * Return the tables in the database |
371 | * |
372 | * @return array |
373 | */ |
374 | public function getTables(): array; |
375 | |
376 | /** |
377 | * Return if the database has a table |
378 | * |
379 | * @param string $table |
380 | * @return bool |
381 | */ |
382 | public function hasTable(string $table): bool; |
383 | |
384 | } |