johnwhitley / seperate-eloquent-concerns
Laravel eloquent 在模型类中有很多功能,这个包帮助将关注点从模型中分离出来
v0.0.1
2016-12-04 08:29 UTC
Requires
- laravel/framework: ^5.3
Requires (Dev)
- orchestra/testbench: ^3.3
- phpmd/phpmd: ^2.5
- phpunit/phpunit: ^5.6
- squizlabs/php_codesniffer: 2.*
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;
您可以选择使用可选集合和强制构建器;或者相反。