hpolthof / repository
该包的最新版本(1.0.0)没有可用的许可信息。
Laravel 5 的简单仓库模式实现
1.0.0
2019-08-13 19:57 UTC
Requires
- laravel/framework: ^5.8
Requires (Dev)
- orchestra/testbench: ^3.8
This package is auto-updated.
Last update: 2024-09-14 06:59:50 UTC
README
这是一个用于与 Eloquent 一起使用的仓库模式的简单实现。
如何使用?
使用 composer 在您的项目中安装此包。
composer require hpolthof/repository
生成器命令
现在您可以使用新的生成器命令创建仓库
php artisan make:repository {modelName}
这将创建一个位于 app 目录中的 Repositories 目录下的新仓库。
模型生成器
此包还将扩展 make:model
生成器。当使用参数 --all
或 -a
和 --repository
或 -o
调用此生成器时,也将生成仓库。
仓库
仓库是一个空的类,它扩展了 Hpolthof\Laravel\Repository\Repository
,该类实现了 Hpolthof\Laravel\Repository\Contracts\RepositoryInterface
接口。此接口如下所示
interface RepositoryInterface { public function all(array $columns = ['*']): Collection; public function list(string $orderByColumn, string $orderBy = 'desc', array $with = [], array $columns = ['*']): Collection; public function builder(Closure $builder, array $columns = ['*']): Collection; public function create(array $data): ?Model; public function update(array $data, $id): bool; public function delete($id): bool; public function find($id, array $columns = ['*']): ?Model; public function findBy(string $field, $value, array $columns = ['*']): ?Model; }
自动模型检测
仓库将尝试检测应该使用的相关 Eloquent 模型。如果模型名称为 {ModelName}Repository
,则将自动使用该模型。
手动设置模型
如果无法检测到模型或您想使用其他名称,则应设置 $modelName
属性。这可以通过以下示例完成
use App\Demo; class DemoRepository extends Repository { protected $modelName = Demo::class; }
在控制器中使用
在控制器中,您可以使用依赖注入来实例化仓库。请参见以下示例
class DemoController extends Controller { protected $repository; public function __construct(DemoRepository $repository) { $this->repository = $repository; } }
免责声明
此包用于内部开发,但公开发布。显然,此软件为“原样”提供,且没有任何保证或声明。
如果您喜欢此包,如果您能留下感谢的信息,那将总是受到欢迎!;-)
此包由 Paul Olthof 构建