ozanakman / laravel-repository-generator
此包已被废弃,不再维护。未建议替代包。
快速从现有模型文件生成仓库和接口
v0.02
2017-05-08 21:19 UTC
Requires
- php: ^7.0
- illuminate/console: ^5.4.16
- illuminate/support: ^5.4.16
This package is auto-updated.
Last update: 2022-02-01 13:07:04 UTC
README
关于
Repository Generator 是一个 Laravel 包,旨在为仓库模式生成仓库和接口文件。它通过自动化操作提高开发速度。您可以使用此包用于正在进行的和新的项目。
- 通过简单的配置高度可定制
- 覆盖选项
- 易于改进
安装
您可以通过 Composer 安装此包
composer require ozanakman/laravel-repository-generator
接下来,您必须将服务提供者安装到 config/app.php
'providers' => [ // ... OzanAkman\RepositoryGenerator\RepositoryGeneratorServiceProvider::class,, ];
然后,如果您想自定义文件夹名称、命名空间等,您需要使用命令发布配置
php artisan vendor:publish --provider="OzanAkman\RepositoryGenerator\RepositoryGeneratorServiceProvider" --tag="config"
现在您可以编辑 config/repository-generator.php
用法
在使用 generate
命令之前,您应该为您的个人使用自定义 config/repository-generator.php
。您可以通过终端简单使用 repositories:generate
命令。
php artisan repositories:generate
RepositoryGenerator 提供的仓库文件(可选使用)
此包包含 Repository.php,它具有与 Eloquent 相似的功能。当您从 \OzanAkman\RepositoryGenerator\Repository
扩展类时,您基本上可以执行以下操作:
这是完全个人化和可选的。我只是从 Eloquent 复制了一些函数,以便直接将类似功能添加到仓库文件中。因此,如果我为其他数据库源(如 mongodb)扩展或实现此仓库/接口,我可以在控制器中使用相同的方法。
<?php $magic = $repository->select('id', 'name') ->where('name', 'The Flash') ->get(); // or ->first();
内置 active() 范围
<?php $magic = $repository->active() ->get(); // You can change active column name from config/repository-generator.php
可用方法
所有列出的方法都具有与 Eloquent 相同的用法
方法 | 用法 |
---|---|
select | $repo->select('column1,'column2') |
$repo->select(['column1, 'column2']) | |
active | $repo->active()->get(); |
active() 等于 $repo->where('active_column', 1); | |
where | $repo->where('color', 'red')->first(); |
$repo->where('level', '>', 10)->first(); | |
whereIn | $repo->whereIn('role', ['moderator', 'admin'])->get(); |
orWhere | $repo->orWhere('column', 'value')->first(); |
with | $repo->with('relation')->get(); |
count | $repo->where('type', 'follower')->count(); |
find | $repo->find($id); |
value | $repo->where('id', $id)->value('name'); |
get | $repo->get(); |
paginate | $repo->paginate(20); |
create | $repo->create(['name' => 'Ozan', 'role' => 'admin']); |
update | $repo->update(['role' => 'moderator'], $id); |
delete | $repo->where('posts', 0)->delete(); |
$repo->delete($id); | |
destroy | $repo->destroy($id); |
贡献
感谢您考虑为 Repository Generator 贡献!贡献指南可以在 CONTRIBUTING.md 中找到。