-
Notifications
You must be signed in to change notification settings - Fork 0
Database
Matěj Bucek edited this page Mar 16, 2021
·
1 revision
In SimpleFW, we have a Wrapper class, that wraps around the PHP PDO called EntityManager.
properties:
...
db:
default:
dsn: "mysql:host=localhost;dbname=MyDB"
username:
password:
services:
...
EntityManager:
class: SimpleFW\Database\EntityManager
arguments: ["%db.default.dsn%", "%db.default.username%", "%db.default.password%"]Because of the use of PDO, you can use variety of supported Database servers.
namespace SimpleFW\Database;
class EntityManager
{
private \PDO $pdo;
private string $dsn;
private string $username;
private string $password;
public function __construct(string $dsn, string $username, string $password){
$this->dsn = $dsn;
$this->usernam = $username;
$this->password = $password;
$this->pdo = new \PDO($this->dsn, $username, $password);
$this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
}
public function __desctruct(){
$this->pdo = NULL;
}
public function getPDO(): \PDO{
return $this->pdo;
}
public function query($stmt, $option = NULL): \PDOStatement{
return $this->pdo->query($stmt, $option);
}
public function prepare($stmt): \PDOStatement{
return $this->pdo->prepare($stmt);
}
public function begindTransaction(){
return $this->pdo->beginTransaction();
}
public function commit(){
return $this->pdo->commit();
}
public function rollBack(){
return $this->pdo->rollBack();
}
}As you can see, our wrapper provides same methods as PDO and the PDO itself.