micahalwolinski/repository

Laravel 的仓储模式实现。

v1.1.1 2020-11-07 14:10 UTC

This package is auto-updated.

Last update: 2024-09-07 22:21:30 UTC


README

Laravel 的仓储模式实现。标准基于过滤器设计模式。

通过 Composer 安装

  1. 在控制台中运行
    composer require michalwolinski/repository
    以安装此库。

用法

我建议使用依赖注入来注入 Repository 接口。

服务类中的示例实现

use MichalWolinski\Repository\Criteria\OrderBy;
use MichalWolinski\Repository\Criteria\Status;
use MichalWolinski\Repository\Interfaces\Repository;
use App\User;

class Service {

    private Repository $repository;

    public function __construct(Repository $repository, User $user)
    {
        $this->repository = $repository->getInstance($user);
    }

    public function getAllUsers(): void
    {
        $allUsers = $this->repository->getAll();
    }

    public function getUserById(int $id): void
    {
        $user = $this->repository->get($id);
    }

    public function getUserByIds(array $ids): void
    {
        $users = $this->repository->getMany($ids);
    }

    public function getGmailUsers(): void
    {
        $users = $this->repository->getWhere('email', 'LIKE', '%@gmail.com');
    }

    public function getByCriteria(): void 
    {
        $criteria = [
            new Status('Active'),
            new OrderBy('created_at')
        ];
        
        $users = $this->repository->getByCriteria($criteria);
    }

}

作者

许可证

本项目采用 MIT 许可证授权。