leandrowkz/laravel-basis

Laravel Basis 是一个为您的应用程序提供基础服务层的包,包含 CRUD 操作。

v4.0.0 2020-06-23 23:37 UTC

README

Build Status Latest Stable Version License

Laravel Basis 是一个为您的应用程序提供基础 CRUD 层的包。

Laravel Basis

  • Leandrowkz\Basis\Controllers\BaseController
  • Leandrowkz\Basis\Services\BaseService
  • Leandrowkz\Basis\Traits\AccessibleProps
  • Leandrowkz\Basis\Traits\MutatesProps

这些类提供了一种简单的方法来在 Laravel 应用中进行 CRUD 操作。您只需要扩展并配置这里提供的类。

Leandrowkz\Basis\Controllers\BaseController

从 BaseController 扩展的每个类都必须设置 $service$request(用于验证)类的字符串名称(例如:FooService::class)。

protected $service;
protected $request;
public function all();
public function find(string $id);
public function create(array $data);
public function update(string $id, array $data);
public function delete(string $id);
public function exists($id);
public function validate();
public function service(BaseServiceInterface $service = null);

Leandrowkz\Basis\Service\BaseService

从 BaseService 扩展的每个类都必须设置 $model 类的字符串名称(例如:FooModel::class)。创建/更新操作是通过使用 $fillable 数组在 $model 类上完成的。

protected $model;
public function all();
public function find(string $id);
public function query($where);
public function create(array $data);
public function update(string $id, array $data);
public function delete(string $id);
public function model(string $model = null);

Leandrowkz\Basis\Traits\AccessibleProps

此特性为目标类添加了流畅的获取器/设置器,可以通过具有相同名称的方法访问任何属性。但作为代价,它破坏了任何属性的可见性。

protected $foo = 1;
protected $bar = 2;
$this->foo(); // returns 1;
$this->bar(); // returns 2;
$this->foo(3); // sets $this->foo as 3;
$this->bar(3); // sets $this->bar as 3;

Leandrowkz\Basis\Traits\MutatesProps

此特性添加了一个方法,用于获取所有类属性并将所有具有有效类名称的属性转换为同一类的对象。例如

protected $customService = MyService::class; // string
$this->customService; // string
$this->mutateProps();
$this->customService; // MyService object

许可证

此代码根据 MIT 许可证发布。这意味着您可以几乎用它做任何事情,只要保留版权声明和附带的许可证文件即可。

贡献

如果您遇到问题或有很好的想法,请随时发送拉取请求或创建问题。任何输入都受到欢迎!