nalingia / laravel-repositories
这是一个用于 Repository 设计模式的 Laravel 扩展包。
1.5.0
2019-09-10 11:58 UTC
Requires
- php: ^7.2
- illuminate/filesystem: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0
- illuminate/support: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0
- lstrojny/functional-php: ^1.9
Requires (Dev)
- orchestra/testbench: ~3.8.0
- phpunit/phpunit: ^8.0
README
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/Repositories
和 app/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)。请参阅 许可证文件 了解更多信息。