dlx-llc/laravel-repository 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dlx-llc/laravel-repository

最新稳定版本:3.1.4

Composer 安装命令:

composer require dlx-llc/laravel-repository

包简介

Repository design pattern implementation for Laravel framework.

README 文档

README

Laravel Version Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

What is repository?

Repository mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects. In this package you will find its implementation for the Laravel framework.

When to use it

In a large system with many domain object types and many possible queries, Repository reduces the amount of code needed to deal with all the querying that goes on. Repository promotes the Specification pattern (in the form of a criteria object), which encapsulates the query to be performed. Also, Repository can be really useful in situations with multiple data sources.

Installation

Install this package using Composer:

composer require dlx-llc/laravel-repository

This package uses auto-discovery for its service provider. However, if you have auto-discovery disabled for this package, you will need to manually register the service provider:

Deluxetech\LaRepo\LaRepoServiceProvider::class

This package has its own exception and validation error message translations. You can override them by following the steps described in the Laravel documentation.

There are also configurations that you might need to replace with your own. In that case, you can publish configurations using the following command:

php artisan vendor:publish --tag=larepo-config

Versioning

This package was built to use with the latest version of Laravel, but it should work fine with versions >= 10.x.

Usage

You can use the generic EloquentRepository class by passing the Laravel model class name to its constructor. There's also a LaRepo facade which provide you with a group of methods that may save you time writing some repetitive code.

use Deluxetech\LaRepo\Facades\LaRepo;
use Deluxetech\LaRepo\Eloquent\GenericRepository;
use Deluxetech\LaRepo\Contracts\RepositoryContract;

class UserController
{
    protected RepositoryContract $repo;

    public function __construct()
    {
        $this->repo = new GenericRepository(User::class);
    }

    public function index()
    {
        return LaRepo::getManyWithRequest($this->repo);
    }
}

Running docker container

Build the image:

docker build -t dlx-llc-laravel-repository .

Use this command to (re)start the docker container:

docker rm -f dlx-llc-laravel-repository 2> /dev/null && \
docker run -itd \
    --name dlx-llc-laravel-repository \
    --mount type=bind,source="$(pwd)"/.,target=/home/larepo/app \
    --restart on-failure:5 \
    dlx-llc-laravel-repository

统计信息

  • 总下载量: 2.66k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-06-14