1. Go to this page and download the library: Download vladshut/dbal-gateway 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/ */
vladshut / dbal-gateway example snippets
namespace ExampleFile
use DBALGateway\Metadata\Table;
call_user_func(function(){
# create the table object
$table = new Table('users');
# assign normal columns
$table->addColumn('id',"integer", array("unsigned" => true));
$table->addColumn('username', "string", array("length" => 32));
$table->addColumn('first_name', "string", array("length" => 45));
$table->addColumn('last_name',"string", array("length" => 45));
$table->addColumn('dte_created','datetime');
$table->addColumn('dte_updated','datetime');
$table->setPrimaryKey(array("id"));
# assign virtual columns, these are perfect for calulated values.
# these columns can not be inserted but will be converted if found in a result-set.
$table->addVirtualColumn('uptime',"datetime");
return $table;
});
namespace DBALGateway\Tests\Base\Mock;
use DBALGateway\Table\AbstractTable;
class MockUserTableGateway extends AbstractTable
{
/**
* Create a new instance of the querybuilder
*
* @access public
* @return QueryBuilder
*/
public function newQueryBuilder()
{
return new MockUserQuery($this->adapter,$this);
}
}
namespace DBALGateway\Tests\Base\Mock;
use DBALGateway\Query\AbstractQuery;
use DateTime;
class MockUserQuery extends AbstractQuery
{
public function filterByUser($id)
{
$this->where('id = :id')->setParameter('id', $id, $this->getGateway()->getMetaData()->getColumn('id')->getType());
return $this;
}
public function filterByUsername($name)
{
$this->where('username = :username')->setParameter('username', $id, $this->getGateway()->getMetaData()->getColumn('username')->getType());
return $this;
}
public function filterByDateCreated(DateTime $created)
{
$this->where('dte_created = :dte_created')->setParameter('dte_created', $id, $this->getGateway()->getMetaData()->getColumn('dte_created')->getType());
return $this;
}
public function filterByDateUpdated(DateTime $updated)
{
$this->where('dte_updated = :dte_updated')->setParameter('dte_updated', $id, $this->getGateway()->getMetaData()->getColumn('dte_updated')->getType());
return $this;
}
}
use Doctrine\Common\Collections\Collection;
class CustomCollection implements Collection
{
.....
}
$collection = new CustomCollection();
$gateway = new MockUserGateway('user',$conn,$event,$meta,$collection,null);
use DBALGateway\Builder\BuilderInterface;
class EntityBuilder implements BuilderInterface
{
/**
* Convert data array into entity
*
* @return mixed
* @param array $data
* @access public
*/
public function build($data)
{
$user = new UserEntity();
$user->id = $data['id'];
$user->username = $data['username'];
... etc
return $user;
}
/**
* Convert and entity into a data array
*
* @return array
* @access public
*/
public function demolish($entity)
{
}
}
$builder = new EntityBuilder();
$gateway = new MockUserGateway('users',$conn,$event,$meta,null,$builder);