PHPackages                             lypzz/laravel-repository - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. lypzz/laravel-repository

ActiveLibrary[Database &amp; ORM](/categories/database)

lypzz/laravel-repository
========================

Repository abstract data layer, to facilitate our better maintenance procedures, suitable for PHP

00PHP

Since Apr 8Pushed 6y ago1 watchersCompare

[ Source](https://github.com/leiyuanpu/laravel-repository)[ Packagist](https://packagist.org/packages/lypzz/laravel-repository)[ RSS](/packages/lypzz-laravel-repository/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

laravel-repository
==================

[](#laravel-repository)

repository用于抽象数据层，让我们的应用程序更易于维护。

安装

```
composer require lypzz/laravel-repository

```

Laravel

```
>= larave7

```

目录说明

```
Contracts : 定义查询的接口
Criteria ：查询条件
Eloquent ：model的映射
Exceptions ：异常处理

```

Methods

```
LypZz\Repositories\Contracts\RepositoryInterface

public function all($columns = array('*'));
public function paginate($perPage = 1, $columns = array('*'), $pageName = 'page', $page = null);
public function create(array $data);
public function saveModel(array $data);
public function update(array $data, $id);
public function delete($id);
public function deleteWhere($where, $or = false);
public function find($id, $columns = array('*'));
public function findBy($field, $value, $columns = array('*'));
public function findAllBy($field, $value, $columns = array('*'));
public function findWhere($where, $columns = array('*'));

```

创建映射：

```
在Http里创建一个Repositories/Eloquent文件夹然后创建一个与model映射的Repository并且
继承LypZz\Repositories\Eloquent\Repository

AsinRepository.php

namespace App\Repositories\Eloquent;

use LypZz\Repositories\Eloquent\Repository;
class AsinRepository extends Repository
{
    public function model() {
        return 'App\Models\Asin';
    }
}

```

控制器调用：

```
class IndexController extends Controller
{
    /**
     * @var $asinRepository AsinRepository
     */
    protected $asinRepository;

    public function __construct(AsinRepository $asinRepository)
    {

         $this->asinRepository = $asinRepository;
    }

    public function index()
    {

        #如果不选择注入的方式可以寻找app('App\Repositories\Eloquent\AsinRepository')这种方式获取
        //$this->asinRepository = app('App\Repositories\Eloquent\AsinRepository');
        #查询一条信息
        $id = 1;
        $this->asinRepository->find($id); //返回一个集合

        #查询所有信息
        $this->asinRepository->all();

        #分页查询
        $this->asinRepository->paginate(10,['*'],'page',1);

        #条件查询
        $this->asinRepository->findWhere(['asin'=>'B01KZ1J2CU','id'=>1],['*'],'or')

        #闭包条件查询
        $this->asinRepository->findWhere(['asin'=>function ($query)  {
            $query->where('id', 1);
            $query->orWhere('id', 3);
        }],['*'],'or');

        #with方式查询
        $this->asinRepository->with(['asinAddon'])->find(1)
    }

```

Criteria方式查询,在Http里创建一个Repositories/Criteria文件夹并且创建文件IdMoreThanTwo.php

```
class IdMoreThanTwo extends Criteria
{
    public function apply($model, Repository $repository)
    {
        $model = $model->where('id','>', 2); #ID大于二的条件
        return $model;
    }
}

class IndexController extends Controller
{
    /**
     * @var $asinRepository AsinRepository
     */
    protected $asinRepository;

    public function __construct(AsinRepository $asinRepository)
    {

         $this->asinRepository = $asinRepository;
    }

    public function index()
    {
        $this->asinRepository = app('App\Repositories\Eloquent\AsinRepository');
        $this->asinRepository->pushCriteria(new IdMoreThanTwo());
        $this->asinRepository->all() #查出ID大于2的所有值
     }
  }

```

更新删除：

```
$this->asinRepository->update(['asin'=>'B01N909V8I'],564522);

$this->asinRepository->deleteWhere(['id' => 1]);

$this->asinRepository->create(['id' => 1]);

$this->asinRepository->saveModel(['id' => 1]);

```

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/69165de727ee20244c190df43bd33953dc9695e5c6f55232c02673f645ca2a8a?d=identicon)[leiyuanpu](/maintainers/leiyuanpu)

---

Top Contributors

[![leiyuanpu](https://avatars.githubusercontent.com/u/16276960?v=4)](https://github.com/leiyuanpu "leiyuanpu (10 commits)")

### Embed Badge

![Health badge](/badges/lypzz-laravel-repository/health.svg)

```
[![Health](https://phpackages.com/badges/lypzz-laravel-repository/health.svg)](https://phpackages.com/packages/lypzz-laravel-repository)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
