antoiner/laravel-repositories-command

此包最新版本(dev-master)无可用许可证信息。

Laravel生成每个模型仓库的命令

dev-master 2021-03-01 16:49 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:22 UTC


README

Artisan命令,用于为每个模型创建带有RepositoryInterface的Repository,并在应用程序中使用依赖注入来使用它。

安装

使用composer安装包

composer require antoiner/laravel-repositories-command --dev

命令

安装完成后,运行以下命令为应用程序的每个模型创建RepositoryInterface和Repository

php artisan make:repositories

此命令还会创建RepositoryServiceProvider,以绑定所有RepositoryInterface与其对应的Repository。

执行命令后,只需在config/app.php中添加此行以注册服务提供者

App\Providers\RepositoryServiceProvider::class,

用法

现在您可以在应用程序中使用Repository,例如这样

//routes/web.php

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', "HomeController@index");
//app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

use App\Repositories\UserRepositoryInterface;

class HomeController extends Controller
{
    private $userRepository;

    public function __construct(UserRepositoryInterface $userRepository)
    {
        $this->userRepository = $userRepository;
    }

    public function index() {
        dd($this->userRepository->all());
    }
}

注解

您可以通过在类文档中添加注解 @Repository(enable = false)禁用 模型的仓库生成。

//Blog.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

/**
 * @Repository(enable = false)
 */
class Blog extends Model
{
    //
}