timwassenburg/laravel-repository-generator

v1.0.3 2023-04-27 11:06 UTC

README

Logo

Latest Version on Packagist GitHub Tests Action Status Total Downloads License

目录

  1. 特性
  2. 入门
  3. 使用方法
  4. 手动绑定
  5. 测试
  6. 更多生成包
  7. 贡献
  8. 许可证

特性

使用此包,您可以使用 artisan make:repository 命令生成仓库。生成器将生成仓库、仓库接口,并将它们自动(可更改为手动绑定)绑定到服务容器,以便您可以将接口注入到控制器中。

安装

使用composer安装Laravel Repository Generator。

composer require timwassenburg/laravel-repository-generator --dev

发布配置(可选)

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

使用方法

使用时,请按照以下步骤操作。生成仓库,然后将其注入到控制器或服务中。

生成仓库

运行以下命令。

php artisan make:repository UserRepository

此示例将生成以下文件

app\Repositories\Eloquent\UserRepository
app\Repositories\UserRepositoryInterface

依赖注入

接下来,我们必须将接口注入到控制器或服务的构造函数中。对于此示例,我们将使用UserController。

<?php

namespace App\Http\Controllers;

use App\Repositories\UserRepositoryInterface;

class UserController extends Controller
{
    private $user;

    public function __construct(UserRepositoryInterface $userRepository)
    {
        $this->user = $userRepository;
    }
    
    // your controller functions
}

默认情况下,您将能够使用Eloquent方法,如all()find()。您可以在仓库中扩展这一点。现在您可以在方法中使用您的仓库,如下所示。

public function index()
{
    return $this->user->all();
}

手动绑定

默认情况下,该包将自动为您绑定仓库接口,以便您可以将接口注入到控制器中。如果想要手动绑定,可以将config\repository-generator.php中的auto_bind_interfaces选项设置为false。如果配置文件不存在,请确保首先按照安装章节中描述的方式发布它。

您可以将绑定添加到AppServiceProvider中,或者创建一个新的提供者,使用php artisan make:provider RepositoryServiceProvider(别忘了在config\app.php中添加它)并将绑定添加到register()方法中,以下是一个示例。

<?php 

namespace App\Providers; 

use App\Repositories\Eloquent\UserRepository;
use App\Repositories\UserRepositoryInterface;
use Illuminate\Support\ServiceProvider; 

/** 
* Class RepositoryServiceProvider 
* @package App\Providers 
*/ 
class RepositoryServiceProvider extends ServiceProvider 
{ 
   /** 
    * Register services. 
    * 
    * @return void  
    */ 
   public function register() 
   { 
       $this->app->bind(UserRepositoryInterface::class, UserRepository::class);
   }
}

测试

使用以下命令运行测试

composer test

更多生成包

寻找更多加快您工作流程的方法?请确保查看这些包。

上述包是Laravel Artisan Extender的一部分。

贡献

贡献使开源社区成为一个如此令人惊叹的学习、灵感和创造的地方。您所做的任何贡献都备受赞赏。

如果您有改进此项目的建议,请复制仓库并创建一个pull request。您也可以简单地创建一个带有“enhancement”标签的问题。别忘了为项目加星!再次感谢!

  1. 复制项目
  2. 创建您的特性分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 将更改推送到分支(git push origin feature/AmazingFeature
  5. 打开Pull Request

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件