mohammadmehrabani/repository-generator

从现有的模型文件快速生成仓库和接口

1.0.1 2021-02-28 19:05 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:57 UTC


README

version license

关于

Repository Generator 是一个 Laravel 扩展包,旨在自动生成仓库和接口文件,并将接口绑定到实现,从而实现仓库模式的自动化。通过自动化操作,它可以提高您的开发速度。您可以使用此包处理现有项目和新项目。

  • 通过简单的配置进行高度定制
  • 覆盖选项
  • 易于改进

安装

您可以通过 Composer 安装此包

composer require mohammadmehrabani/repository-generator:dev-master

接下来,您必须将服务提供者安装到 config/app.php

'providers' => [
    // for laravel 5.4 and below
    MohammadMehrabani\RepositoryGenerator\RepositoryGeneratorServiceProvider::class,
];

然后,如果您想自定义文件夹名称、命名空间等,您需要使用以下命令发布配置:

php artisan vendor:publish --provider="MohammadMehrabani\RepositoryGenerator\RepositoryGeneratorServiceProvider" --tag="config"

现在您可以编辑 config/repository-generator.php

使用方法

在您使用 generate 命令之前,您应该根据您的需要自定义 config/repository-generator.php。您可以通过终端简单地使用 repository:generate 命令。

php artisan repository:generate

接下来,您必须将服务提供者安装到 config/app.php

'providers' => [
    // You can change service_provider_class from config/repository-generator.php
    App\Providers\RepositoryServiceProvider::class,

],

由 RepositoryGenerator 提供的仓库文件(可选使用)

此包包含 Repository.php,它具有与 Eloquent 类似的函数。当您从 \MohammadMehrabani\RepositoryGenerator\Repository 扩展类时,您可以基本做以下事情:

这是完全个人和可选的。我只是创建/复制了一些来自 Eloquent 的函数,以直接将类似的功能添加到仓库文件中。这样,如果我为其他数据库源(如 mongodb)扩展或实现此仓库/接口,我可以在控制器中使用相同的方法。

<?php

// You can change Directories and Namespaces from config/repository-generator.php
use App\Repositories\Interfaces\UserRepositoryInterface;

$repository = resolve(UserRepositoryInterface::class);
$user      = $repository->select('id', 'name')
                         ->where('name', 'LIKE', '%Mohammad%')
                         ->first(); // or ->get();

内置的 active() 范围

<?php

use App\Repositories\Interfaces\UserRepositoryInterface;

$repository = resolve(UserRepositoryInterface::class);
$users      = $repository->active()
                         ->get();
            
// You can change active column name from config/repository-generator.php

可用方法
所有列出的方法的使用与 Eloquent 相同

贡献

感谢您考虑为 Repository Generator 做出贡献!贡献指南可以在 CONTRIBUTING.md 中找到。