nalingia/laravel-repositories

这是一个用于 Repository 设计模式的 Laravel 扩展包。

1.5.0 2019-09-10 11:58 UTC

This package is auto-updated.

Last update: 2024-09-10 22:44:57 UTC


README

Latest Version on Packagist Build Status Software License Total Downloads

Repositories 是一个简单的扩展包,用于简化使用 Repository 设计模式 时创建脚手架代码的过程。它添加了一个 artisan 命令,用于创建仓库和相关的合同。

安装

您可以通过 composer 安装此扩展包

composer require nalingia/laravel-repositories

然后,您需要将相关的 Service Provider 添加到 config/app.php 文件中的 providers 配置数组中

'providers' => [
  ...
  Nalingia\Repositories\RepositoriesServiceProvider::class,
  ...
]

使用方法

该扩展包提供了一个名为 make:repository 的 artisan 命令,该命令仅接受一个参数,即模型的类名。

例如,如果您需要创建用户的仓库,可以输入以下命令

php artisan make:repository User

该命令将在 app/Repositoriesapp/Repositories/Contracts 文件夹中分别创建仓库和相关的合同。默认文件夹和命名空间可以更改

可用的 API

生成的仓库将继承自 Nalingia\Repositories\AbstractEloquentRepository,它提供了一组有用且通用的方法

  • 获取所有模型
public function all(array $with = []); 
  • 获取具有给定 id 的模型
public function findById($id, array $with = [], $fail = true);
  • 获取第一个具有 $key 属性等于 $value 的模型
public function getFirstBy($key, $value, array $with = [], $comparator = '=', $fail = false);
  • 获取所有具有 $key 属性等于 $value 的模型
public function getManyBy($key, $value, array $with = [], $comparator = '=');
  • 获取第一个符合 $where 条件的模型
public function getFirstWhere(array $where, $with = [], $fail = false);
  • 获取所有符合 $where 条件的模型
public function getAllWhere($where, $with = [], $columns = ['*']);
  • 获取分页模型
public function getByPage($page = 1, $limit = 10, array $with = []);
  • 创建一个新的模型
public function create(array $data);
  • 更新一个模型
public function update($model, array $data);
  • 删除一个模型
public function delete($model);
  • 截断与模型相关的表
public function truncate();
  • 获取所有具有 column_name$needles 中的模型
public function getAllWhereColumnNameIn(array $needles, array $with = []);

您可以通过提出 pull request 来为公共方法做出贡献。

设置

如果您需要更改默认命令设置,可以使用以下命令发布 repositories.php 配置文件

php artisan vendor:publish --provider="Nalingia\Repositories\RepositoriesServiceProvider"

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

测试

您可以使用以下命令运行测试

composer test

vendor/bin/phpunit

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。