kachit / doctrine-datamapper
Simple datamapper powered by doctrine 2 dbal
Installs: 8 640
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
- ext-json: *
- doctrine/dbal: 2.5.*
Requires (Dev)
This package is auto-updated.
Last update: 2025-02-13 01:40:28 UTC
README
Simple datamapper powered by doctrine2
<?php //create database connection $params = [ 'driver' => 'pdo_pgsql', 'host' => '127.0.0.1', 'port' => 5432, 'dbname' => 'db', 'user' => 'postgres', 'password' => '', ]; $connection = Doctrine\DBAL\DriverManager::getConnection($params);
<?php //create your table gateway class FooGateway extends Kachit\Database\Gateway { /** * @return string */ public function getTableName(): string { return 'users'; } } $gateway = new FooGateway($connection); //fetch by PK $row = $gateway->fetchByPk(1); //fetch all without filter $rows = $gateway->fetchAll(); //fetch list with filter (all active) $filter = new Kachit\Database\Query\Filter(); $filter->createCondition('active', true); $rows = $gateway->fetchAll($filter);
<?php //create entity class FooEntity extends Kachit\Database\Entity { /** * @var int */ protected $id; /** * @return int */ public function getId(): int { return $this->id; } /** * @param int $id * @return FooEntity */ public function setId(int $id) { $this->id = $id; return $this; } } //create mapper $gateway = new FooGateway(); $entity = new FooEntity(); $mapper = new Kachit\Database\Mapper($gateway, $entity); //fetch by PK $entity = $mapper->fetchByPk(1); //fetch all without filter $collection = $mapper->fetchAll(); //fetch list with filter (all active) $filter = new Kachit\Database\Query\Filter(); $filter->createCondition('active', true); $collection = $mapper->fetchAll($filter);