deseco / repository
此包已被废弃,不再维护。未建议替代包。
为 Laravel 提供简单的仓库。
v2.0.2
2018-01-17 08:55 UTC
Requires
- php: >=5.5.9
- illuminate/support: ~5.0
README
包目前正在开发中 !!
信息
一个简单的包,允许在 Laravel 应用程序中实现仓库模式。受 Bosnadev 包的启发。支持条件、查询过滤器,并可交互使用 fractal。
安装
composer require deseco/repository
将服务提供者添加到 config/app.php
$providers = [ .... Deseco\Repositories\RepositoriesServiceProvider::class, ];
发布配置
php artisan vendor:publish --provider="Deseco\Repositories\RepositoriesServiceProvider"
设置仓库配置,例如
- 命名空间 - 仓库命名空间
- 后缀 - 仓库类后缀,例如:
Repository
- 路径 - 仓库路径
- 类 - 工厂仓库类,当注入时允许轻松创建仓库(在 Phpstorm 中具有自动完成功能)
用法
您可以使用以下命令创建仓库
php artisan repository:make
您将被要求指定仓库名称
Enter repository name::
> Clients
和别名(可选)
Enter alias name [clients]: >
您将获得两个文件
Generating repository... +-------------------+-------------------+----------+---------+ | Class | Repository | Property | Status | +-------------------+-------------------+----------+---------+ | ClientsRepository | - | - | Created | | Repositories | ClientsRepository | clients | Created | +-------------------+-------------------+----------+---------+ Done!
仓库类(实现模型方法)
<?php namespace App\Repositories; use Deseco\Repositories\Eloquent\Repository; class ClientsRepository extends Repository { /** * @return mixed */ public function model() { // return Model::class; } }
和 RepositoriesFactory
<?php namespace App\Repositories; use Deseco\Repositories\Factories\RepositoryFactory; /** * Class Repositories */ class Repositories extends RepositoryFactory { /** * @var ClientsRepository */ public $clients = 'clients'; }
现在您可以使用工厂(您具有属性和方法的完整自动完成功能)
Route::get('/', function (\App\Repositories\Repositories $repo) { return $repo->clients->all(); });
或将仓库注入到类/方法中并单独使用
public function index(ClientsRepository $clientsRepository) { $clients = $clientsRepository->all(); }