tripteki/laravelphp-repository

Trip Teknologi 的 Laravel.php 仓库

1.0.0 2023-11-02 02:31 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:12 UTC


README

此包提供了 Lumen 和 Laravel 的仓储模式实现。

入门指南

安装

$ composer require tripteki/laravelphp-repository

如何使用它

  • 初始化文件 app/Contracts/Repository/IRepository.php
<?php

namespace App\Contracts\Repository;

use Tripteki\Repository\Contracts\Allable;
use Tripteki\Repository\Contracts\Getable;
use Tripteki\Repository\Contracts\Createable;
use Tripteki\Repository\Contracts\Updateable;
use Tripteki\Repository\Contracts\Deleteable;

interface IRepository extends Allable, Createable, Deleteable
{
    //
};
  • 对于 QueryBuilder 实例,只需初始化文件 app/Repositories/QueryBuilder/MyRepository.php
<?php

namespace App\Repositories\QueryBuilder;

use App\Contracts\Repository\IRepository;
use Tripteki\Repository\AbstractRepository;

class MyRepository extends AbstractRepository implements IRepository
{
    /**
     * @param array $querystring
     * @return mixed
     */
    public function all($querystring = []) {}

    /**
     * @param array $data
     * @return mixed
     */
    public function create($data) {}

    /**
     * @param int|string $identifier
     * @return mixed
     */
    public function delete($identifier) {}
};
  • 对于 Eloquent 实例,只需初始化文件 app/Repositories/Eloquent/MyRepository.php
<?php

namespace App\Repositories\Eloquent;

use App\Contracts\Repository\IRepository;
use Tripteki\Repository\AbstractRepository;

class MyRepository extends AbstractRepository implements IRepository
{
    /**
     * @param array $querystring
     * @return mixed
     */
    public function all($querystring = []) {}

    /**
     * @param array $data
     * @return mixed
     */
    public function create($data) {}

    /**
     * @param int|string $identifier
     * @return mixed
     */
    public function delete($identifier) {}
};
  • 初始化文件 app/Providers/RepositoryServiceProvider.php
<?php

namespace App\Providers;

use Tripteki\Repository\RepositoryServiceProvider as ServiceProvider;

class RepositoryServiceProvider extends ServiceProvider
{
    /**
     * @var array
     */
    protected $repositories =
    [
        // For QueryBuilder //
        \App\Contracts\Repository\IRepository::class => \App\Repositories\QueryBuilder\MyRepository::class,

        // For Eloquent //
        \App\Contracts\Repository\IRepository::class => \App\Repositories\Eloquent\MyRepository::class,
    ];
};
  • App\Providers\RepositoryServiceProvider 添加到服务提供者配置列表。

作者