1. Go to this page and download the library: Download kappa/deaw library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
kappa / deaw example snippets
class Users {
private $dataAccess;
public function __construct(\Kappa\Deaw\DataAccess $dataAccess) {
$this->dataAccess = $dataAccess;
}
}
class FetchAdminUsers extends QueryObject { // or implments Queryable
public function doQuery(QueryBuilder $builder) {
return $builder->createQuery()->select('*')
->from('user')
->where('role = ?', 'admin');
}
}
class Users {
private $dataAccess;
public function __construct(\Kappa\Deaw\DataAccess $dataAccess) {
$this->dataAccess = $dataAccess;
}
public function getAdmins() {
return $this->dataAccess->fetch(new FetchAdminUsers());
}
}
class AddNewAdminUser extends QueryObject
{
private $name;
public function __construct($name) {
$this->name = $name;
}
public function doQuery(QueryBuilder $builder) {
$builder->createQuery()->insert('users', [
'name' => $this->name,
'role' => 'admin'
]);
}
}
class Users {
private $dataAccess;
public function __construct(\Kappa\Deaw\DataAccess $dataAccess) {
$this->dataAccess = $dataAccess;
}
public function addAdmin($name) {
return $this->dataAccess->execute(new AddNewAdminUser($name));
}
}
class Users {
private $dataAccess;
public function __construct(\Kappa\Deaw\DataAccess $dataAccess) {
$this->dataAccess = $dataAccess;
}
public function addAdmins() {
$transaction = $this->dataAccess->createTransaction();
try {
$this->dataAccess->execute(new AddNewAdminUser('foo'));
$this->dataAccess->execute(new AddNewAdminUser('bar'));
$transaction->commit();
} catch (\Exception $e) {
$transaction->rollback();
}
}
}
class Users {
private $dataAccess;
public function __construct(\Kappa\Deaw\DataAccess $dataAccess) {
$this->dataAccess = $dataAccess;
}
public function addAdmins() {
$transaction = $this->dataAccess->createTransaction();
try {
$this->dataAccess->execute(new AddNewAdminUser('foo'));
$this->dataAccess->execute(new AddNewAdminUser('bar'));
$nestedTransactions = $this->dataAccess->createTransaction();
try {
$this->dataAccess->execute(new AddNewAdminUser('foo_bar'));
$nestedTransactions->commit(); // savepoint release is not
class FetchToMany implements Queryable {
public function doQuery(QueryBuilder $builder) {
return $builder->createQuery()
->select('users.id, users.name, GROUP_CONCAT(articles.title SEPARATOR ',') as articles')
->leftJoin('articles')->on('articles.user_id = users.id')
->from('users');
}
public function postFetch($data) {
foreach ($data as $key => $row) {
$data[$key]['articles'] = explode(',', $data[$key]['articles'];
}
return $data;
}
}