kristoreed / laminas-dictionary
Laminas dictionary
1.0.1
2021-02-01 18:20 UTC
Requires
- php: >=7.2
- kristoreed/laminas-db-manager: ^1.1
This package is auto-updated.
Last update: 2024-10-06 14:16:08 UTC
README
Laminas-dictionary is repository class with simple CRUD functionality, which can be used as base to more complex db dictionaries. This package base on kristoreed/laminas-db-manager
Installation
Use the package manager composer to install laminas-dictionary.
composer require kristoreed/laminas-dictionary
Base usage
use Kristoreed\Laminas\DbManager\Query\Executor\Executor as QueryExecutor; $dbAdapter = new Adapter([ 'driver' => 'pdo', 'dsn' => 'mysql:dbname=test;host=localhost', 'username' => 'admin', 'password' => 'admin', ]); $queryExecutor = new QueryExecutor($dbAdapter); $userRepository = new Dictionary($queryExecutor); $userRepository->setTableName('users'); $user = $userRepository->getElementById(404);
Extend usage
class User extends Dictionary implements UserInterface { /** * @var string */ protected $tableName = 'users'; /** * @var QueryExecutorInterface */ protected $queryExecutor; /** * User constructor * * @param QueryExecutorInterface $queryExecutor */ public function __construct(QueryExecutorInterface $queryExecutor) { parent::__construct($queryExecutor); $this->queryExecutor = $queryExecutor; } /** * @param string $elementEmail * * @return array * * @throws ExecutorException */ public function getElementByEmail(string $elementEmail): array { $select = new Select(); $select ->from(['u' => $this->tableName]) ->columns(['*']) ->where([ 'email' => $elementEmail ]); return $this->queryExecutor->getRow($select); } } $dbAdapter = new Adapter([ 'driver' => 'pdo', 'dsn' => 'mysql:dbname=test;host=localhost', 'username' => 'admin', 'password' => 'admin', ]); $queryExecutor = new QueryExecutor($dbAdapter); $userRepository = new User($queryExecutor); $user = $userRepository->getElementByEmail("user404@gmail.com");