-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAction.php
52 lines (44 loc) · 929 Bytes
/
Action.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
namespace ModernPDO\Actions;
use ModernPDO\ModernPDO;
use ModernPDO\Statement;
/**
* Base class for all actions.
*/
abstract class Action
{
/** The SQL statement. */
protected string $query = '';
public function __construct(
protected ModernPDO $mpdo,
protected string $table,
) {
}
/**
* Returns base query.
*/
abstract protected function buildQuery(): string;
/**
* Returns the SQL statement.
*/
protected function getQuery(): string
{
return $this->query;
}
/**
* Returns placeholders.
*
* @return mixed[]
*/
abstract protected function getPlaceholders(): array;
/**
* Executes query and returns statement.
*/
protected function exec(): Statement
{
return $this->mpdo->query(
$this->getQuery(),
$this->getPlaceholders(),
);
}
}