veseluy-rodjer/laravel-repository-generator

生成 Laravel 仓库

v1.0.1 2021-10-25 17:06 UTC

This package is auto-updated.

Last update: 2024-09-14 02:07:52 UTC


README


Logo

Laravel 仓库生成器

快速为您的项目生成仓库!



目录

  1. 特性
  2. 快速入门
  3. 使用
  4. 手动绑定
  5. 更多生成器包
  6. 贡献
  7. 许可协议

特性

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

安装

使用 composer 安装 Laravel 仓库生成器。

composer require timwassenburg/laravel-repository-generator

发布配置(可选)

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);
   }
}

更多生成器包

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

贡献

贡献使开源社区成为一个如此美妙的学习、灵感和创造的地方。您所做的任何贡献都 非常受赞赏

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

  1. fork 项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开 pull request

许可协议

MIT 许可协议(MIT)。请参阅 许可文件 以获取更多信息。