zhetenov/repository

创建仓库的简单方式

dev-master 2020-01-06 07:04 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:29:39 UTC


README

Issues Forks Stars License

本软件包为您提供使用命令创建laravel仓库的简单方法。

安装

在您的终端

composer require zhetenov/repository

使用

通过使用此命令,您可以轻松创建仓库

php artisan make:repository User

您将看到有一个名为“Repositories”的文件夹,在这个文件夹中有一个“User”文件夹,它包含2个文件:UserRepository 和 User interface

$ tree -a app
app
├── Console
├── Exceptions
├── Http
├── Providers
├── Repositories
│   └── User
│       ├── UserInterface.php
│       └── UserRepository.php
└── User.php

仓库

首先,我们需要在 getModelClass 方法中返回模型路径。然后,您可以开始使用仓库模式。例如,要获取所有用户,我们创建了 getAll 方法。首先,我们调用 startConditions 方法,它返回我们的 User 模型的副本(QueryBuilder)。之后,我们可以编写自己的 QueryBuilder。

<?php

namespace app\Repositories\User;

use App\User;
use Illuminate\Database\Eloquent\Collection;
use Zhetenov\Repository\BaseRepository;

class UserRepository extends BaseRepository implements UserInterface
{
    /**
     * Returns current model.
     *
     * @return string
     */
    protected function getModelClass(): string
    {
        return User::class;
    }

    /**
     * @return Collection
     */
    public function getAll(): Collection
    {
        return $this
            ->startConditions()
            ->all();
    }
}