unmbtg/barud

此包的最新版本(dev-master)没有可用的许可证信息。

我的第一个Composer项目

dev-master 2017-08-06 21:44 UTC

This package is not auto-updated.

Last update: 2024-09-29 00:28:39 UTC


README

一种简单的方法,用于创建高度可定制的CRUD API。

基本功能

这些是CRUD的基本组件。

  • 实体:它们负责表示需要存储的东西。
  • 标准:它们代表了一种搜索东西的方式。
  • 存储库:它们是将一个实体存储在一个永久状态中的方式。它们还负责能够检索给定的实体。
  • 服务:这是必须保留基本程序的地方,使用存储库来永久存储给定的程序。
  • 展示者:它们为给定的信息提供更好的外观。
  • 转换器:它们将看起来好的(展示性)信息转换为其他东西。
  • 验证器:在永久存储某物之前必须放置的验证,用于存储库。

用法

步骤 1:创建一个实体

为了存储某物,创建一个实体,大致如下。

<?php
 class Foo implements EntityInterface{}

这将使实体可以通过所有其他方法进行识别。如果你使用Eloquent,已经有一个包装器实现了所有必要的方法 EloquentWarper\Model。

步骤 2:创建验证它遵循Laravel Validator的方式,更多信息请参阅 -https://laravel.net.cn/docs/5.4/validation

示例

<?php

class FooValdiator extends ValidatorAbstract
{
    public function createRules()
    {
        return [
            'boo' => 'required'
        ];  
    }

    public function createMessages()
    {
        return [];
    }
}

步骤 3

创建一些端点并实现Controlify特性

示例

<?php

namespace App\Http\Controllers\Api\V1;


use UnmBtg\Controllers\ControllerInterface;
use UnmBtg\Controllers\Controllify;
use UnmBtg\Entities\EntityInterface;
use UnmBtg\Services\DefaultService;

class FooController extends Controller implements ControllerInterface
{
    use Controllify;

    protected $validatorException = ValidateException::class;

    protected $serviceClass = DefaultService::class;

    /**
     * @var EntityInterface
     */
    protected $entity;

    public function __construct()
    {
        \App::setLocale("pt_br");
        $this->service = new $this->serviceClass(new $this->entity);
    }

    public function index(Request $request) {
        return $this->indexRequest($request->all());
    }

    public function store(Request $request)
    {
        return $this->storeRequest($request->all());
    }

    public function update($id, Request $request)
    {
        return $this->updateRequest($id, $request->all());
    }

    public function destroy($id) {
        return $this->deleteRequest($id);
    }

    public function show($id) {
        return $this->showRequest($id);
    }
}