ozankurt/repoist
Composer 安装命令:
composer require ozankurt/repoist
包简介
Laravel ^5.6 repository generator.
README 文档
README
Laravel repository generator for 5.2+ versions
Usage
Step 1: Install Through Composer
composer require ozankurt/repoist
Step 2: Publish and edit the configurations
In Laravel: Run php artisan vendor:publish --tag=repoist-config from the console to configure the Repoist according to your needs.
Step 3: Run Artisan!
You're all set. Run php artisan from the console, and you'll see the new commands.
For Lumen
In bootstrap\app.php enable Facades and Eloquent, also enable the configuration file.
$app->withFacades();
$app->withEloquent();
$app->configure('repoist');
In the Register service providers section add:
$app->register(Kurt\Repoist\RepoistServiceProvider::class);
Examples
Repository
php artisan make:repository Task
Will output:
app/Contracts/Task/TaskRepository.php(contract)app/Repositories/Eloquent/EloquentTaskRepository.phpapp/Task.php(if needed)
Criterion
php artisan make:criterion Completed
Will output:
app/Repositories/Eloquent/Criteria/Completed.php
Configurations
If somehow you cannot publish the config/repoist.php from artisan here you can copy and use it.
<?php return [ /** * Namespaces are being prefixed with the applications base namespace. */ 'namespaces' => [ 'contracts' => 'Repositories\Contracts', 'repositories' => 'Repositories\Eloquent', ], /** * Paths will be used with the `app()->basePath().'/app/'` function to reach app directory. */ 'paths' => [ 'contracts' => 'Repositories/Contracts/', 'repositories' => 'Repositories/Eloquent/', ], ];
Configurations
Default methods of the Kurt\Repoist\Repositories\Eloquent\AbstractRepository.
| Method | Usage |
|---|---|
| all | $repo->all() |
| find | $repo->find($id); |
| findWhere | $repo->findWhere($column, $value); |
| findWhereFirst | $repo->findWhereFirst($column, $value); |
| findWhereLike | $repo->findWhereLike($column, $value, $paginate = 0); |
| paginate | $repo->paginate($perPage = 10); |
| create | $repo->create(array $properties); |
| update | $repo->update($id, array $properties); |
| delete | $repo->delete($id); |
Example Usage
Customer.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Customer extends Model { /** * Customer has many Tickets. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function tickets() { return $this->hasMany(Ticket::class, 'customer_id', 'id'); } }
EloquentCustomerRepository.php
<?php namespace App\Repositories\Eloquent; use App\Models\Customer; use App\Repositories\Contracts\CustomerRepository; use Kurt\Repoist\Repositories\Eloquent\AbstractRepository; class EloquentCustomerRepository extends AbstractRepository implements CustomerRepository { public function entity() { return Customer::class; } }
PagesController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Repositories\Contracts\CustomerRepository; use Kurt\Repoist\Repositories\Eloquent\Criteria\EagerLoad; class PagesController extends Controller { private $customerRepository; function __construct(CustomerRepository $customerRepository) { $this->customerRepository = $customerRepository; } public function getHome() { $customersWithTickets = $this->customerRepository->withCriteria([ new EagerLoad(['tickets']), ])->all(); return $customersWithTickets; } }
ozankurt/repoist 适用场景与选型建议
ozankurt/repoist 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 44.84k 次下载、GitHub Stars 达 92, 最近一次更新时间为 2015 年 04 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「database」 「repository」 「laravel」 「repoist」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ozankurt/repoist 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ozankurt/repoist 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ozankurt/repoist 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dibi is Database Abstraction Library for PHP
repository php library
Store your language lines in the database, yaml or other sources
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
A PSR-7 compatible library for making CRUD API endpoints
Laravel 5 - Repositories to the database layer
统计信息
- 总下载量: 44.84k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 92
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-04-29