johnwhitley/seperate-eloquent-concerns

Laravel eloquent 在模型类中有很多功能,这个包帮助将关注点从模型中分离出来

v0.0.1 2016-12-04 08:29 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:14:36 UTC


README

自动将 Eloquent 模型自动化,为每个模型定义独立的构建器和集合。

Eloquent 允许在模型类中定义集合和单个实体方法:这对于小型项目来说很好,并且有助于开始使用 Eloquent。

有时,模型会增长到一定程度,将集合(以范围前缀)函数与单个函数(关系、访问器、修改器等)分离,有助于保持模型的可管理性。有几种可能的解决方案可以解决这个问题;这个项目主张将通常带有“范围”前缀的函数放入自定义构建器类中——每个模型一个自定义构建器。

此项目假设模型、集合和构建器有严格的命名空间,因此,如果模型在目录“Model”中,则集合在同级目录“Collection”中,而 Eloquent 构建器在另一个目录“Builder”中。

安装

composer require johnwhitley/separateeloquentconcerns

使用

在使用此模型扩展时有两个选项:强制存在自定义构建器或集合;或者在没有自定义构建器或集合时优雅地回退到默认构建器或集合。

要强制存在自定义构建器和自定义集合,请将这些特性添加到您的模型中

  use \Illuminate\Database\Eloquent\SeparateConcernsTrait, \Illuminate\Database\Eloquent\EnforcedSeparateBuilderTrait, \Illuminate\Database\Eloquent\EnforcedSeparateCollectionTrait;

要允许存在自定义构建器和自定义集合,但如果没有它们则回退到默认构建器或集合,请将这些特性添加到您的模型中

  use \Illuminate\Database\Eloquent\SeparateConcernsTrait, \Illuminate\Database\Eloquent\OptionalSeparateBuilderTrait, \Illuminate\Database\Eloquent\OptionalSeparateCollectionTrait;

您可以选择使用可选集合和强制构建器;或者相反。