koalabs/repo

Eloquent 的 Repository 接口的简单实现,包含最基本的 CRUD 方法

v1.0.0 2014-09-22 15:36 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:32:04 UTC


README

Eloquent 的 Repository 接口的简单实现,包含最基本的 CRUD 方法。

如果你发现自己每次创建新的仓库类时都在重复实现相同的基本方法,这个包可以为你节省一些时间。

快速概览

Repo 包含两个基本文件

  • RepoInterface.php (接口)
  • Repo.php
  • CacheableRepo.php

Repo.php

Repo.php 文件只是一个包含基本 CRUD 方法(创建、读取、更新、删除)的接口。如果你选择将来使用其他类型的仓库,它将强制你实现所有这些方法。

EloquentRepo.php

EloquentRepo.php 文件是 Repo 接口的 Eloquent 实现。继续阅读以了解我打算如何使用它。

安装

在你的应用程序根目录中,打开 composer.json 文件,并将包添加到 require 部分,使其看起来像这样

"require": {
    "koalabs/repo": "dev-master"
},

打开命令行,在我们的应用程序根目录中运行 Composer 更新,如下所示

php composer.phar update

现在让我们添加 Repo 服务提供者。打开 app/config/app.php 文件,并在 providers 数组中添加以下行

'Koalabs\Repo\RepoServiceProvider'

使用方法

你可以使用一个简单的仓库类来处理 Eloquent 实体(模型)。你创建的每个新仓库将简单地是 EloquenRepository 的扩展。以下是一个示例

use Koalabs\Repo\Repo;

class UserRepository extends Repo {

    protected $relations = ['role'];

    public function __construct(User $entity)
    {
        parent::__construct($entity);
    }
}

对于子仓库类,你只需要告诉仓库它应该管理哪个 Eloquent 模型/实体(在这个例子中,是 User)。然后你就可以使用默认方法来查找、创建、存储和删除指定的模型。这样你应该就可以开始了,但深入到包的代码中可以更好地了解幕后发生了什么。

可用方法

你将可以使用以下基本 CRUD 方法

  • findById($id)
  • findByField($field, $value)
  • all($orderBy)
  • create(array $fields)
  • update($id, array $fields)
  • destroy($id)

可缓存仓库

你可以选择使用基本的 filesystem 缓存与你的仓库一起使用。只需扩展 CacheableRepo 类而不是 Repo 类即可。