micahalwolinski / repository
Laravel 的仓储模式实现。
v1.1.1
2020-11-07 14:10 UTC
Requires
- php: ^7.4
- laravel/framework: ^8.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^9.0@dev
This package is auto-updated.
Last update: 2024-09-07 22:21:30 UTC
README
Laravel 的仓储模式实现。标准基于过滤器设计模式。
通过 Composer 安装
- 在控制台中运行
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); } }
作者
- Michal Wolinski - Haxmedia
许可证
本项目采用 MIT 许可证授权。