kristoreed/laminas-dictionary

1.0.1 2021-02-01 18:20 UTC

This package is auto-updated.

Last update: 2024-09-06 14:05:48 UTC


README

Laminas-dictionary 是一个具有简单 CRUD 功能的仓库类,可作为更复杂数据库字典的基础。此包基于 kristoreed/laminas-db-manager

安装

使用包管理器 composer 安装 laminas-dictionary。

composer require kristoreed/laminas-dictionary

基本用法

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);

扩展用法

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");

许可证

MIT