tripteki / laravelphp-repository
Trip Teknologi 的 Laravel.php 仓库
1.0.0
2023-11-02 02:31 UTC
Requires
- php: ^8.0.2
Suggests
- laravel/framework: Required when using laravel framework (^9.0).
- laravel/lumen-framework: Required when using lumen framework (^9.0).
README
此包提供了 Lumen 和 Laravel 的仓储模式实现。
入门指南
安装
$ composer require tripteki/laravelphp-repository
如何使用它
- 初始化文件
app/Contracts/Repository/IRepository.php。
<?php namespace App\Contracts\Repository; use Tripteki\Repository\Contracts\Allable; use Tripteki\Repository\Contracts\Getable; use Tripteki\Repository\Contracts\Createable; use Tripteki\Repository\Contracts\Updateable; use Tripteki\Repository\Contracts\Deleteable; interface IRepository extends Allable, Createable, Deleteable { // };
- 对于 QueryBuilder 实例,只需初始化文件
app/Repositories/QueryBuilder/MyRepository.php。
<?php namespace App\Repositories\QueryBuilder; use App\Contracts\Repository\IRepository; use Tripteki\Repository\AbstractRepository; class MyRepository extends AbstractRepository implements IRepository { /** * @param array $querystring * @return mixed */ public function all($querystring = []) {} /** * @param array $data * @return mixed */ public function create($data) {} /** * @param int|string $identifier * @return mixed */ public function delete($identifier) {} };
- 对于 Eloquent 实例,只需初始化文件
app/Repositories/Eloquent/MyRepository.php。
<?php namespace App\Repositories\Eloquent; use App\Contracts\Repository\IRepository; use Tripteki\Repository\AbstractRepository; class MyRepository extends AbstractRepository implements IRepository { /** * @param array $querystring * @return mixed */ public function all($querystring = []) {} /** * @param array $data * @return mixed */ public function create($data) {} /** * @param int|string $identifier * @return mixed */ public function delete($identifier) {} };
- 初始化文件
app/Providers/RepositoryServiceProvider.php。
<?php namespace App\Providers; use Tripteki\Repository\RepositoryServiceProvider as ServiceProvider; class RepositoryServiceProvider extends ServiceProvider { /** * @var array */ protected $repositories = [ // For QueryBuilder // \App\Contracts\Repository\IRepository::class => \App\Repositories\QueryBuilder\MyRepository::class, // For Eloquent // \App\Contracts\Repository\IRepository::class => \App\Repositories\Eloquent\MyRepository::class, ]; };
- 将
App\Providers\RepositoryServiceProvider添加到服务提供者配置列表。
作者
- Trip Teknologi (@tripteki)
- Hasby Maulana (@hsbmaulana)