visiarch/laravel-repository
Composer 安装命令:
composer require visiarch/laravel-repository
包简介
A simple Laravel package to create repository, using artisan commands
关键字:
README 文档
README
laravel-repository
A Simple Package to create repositories, using artisan commands in laravel.
This package extends the make: commands to help you easily create repository classes in Laravel 9+.
What is Repository ?
Repository is a design pattern used to manage data access logic. It provides abstraction between the application and data access layers, such as databases.
Install
composer require visiarch/laravel-repository
Once it is installed, you can use any of the commands in your terminal.
Usage
Repositories are used to separate data access logic from business logic, allowing developers to change how data is stored and retrieved without affecting business logic.
With interface
php artisan make:repository {name} --i
Without interface
php artisan make:repository {name}
Examples
Create a repository class with interface
php artisan make:repository PostRepository --i
app/Repositories/Interfaces/PostRepositoryInterface.php
<?php namespace App\Repositories\Interfaces; /** * Interface PostRepositoryInterface * * This interface defines the methods for the PostRepository class. */ interface PostRepositoryInterface { // }
app/Repositories/PostRepository.php
<?php namespace App\Repositories; use App\Repositories\Interfaces\PostRepositoryInterface; /** * Class PostRepository * * @package App\Repositories */ class PostRepository implements PostRepositoryInterface { // }
app\Providers\AppServiceProvider
public function register(): void { // $this->app->bind( \App\Repositories\Interfaces\PostRepositoryInterface::class, \App\Repositories\PostRepository::class ); }
Create a repository class without interface
php artisan make:repository PostRepository
app/Repositories/PostRepository.php
<?php namespace App\Repositories; /** * Class PostRepository * * @package App\Repositories */ class PostRepository { // }
Implementation
With Interface
<?php namespace App\Repositories\Interfaces; use App\Models\Post; class PostRepository implements PostRepositoryInterface { public function store(array $data): Post; }
<?php namespace App\Repositories; use App\Models\Post; class PostRepository implements PostRepositoryInterface { protected $post; public function __construct(Post $post){ $this->post = $post; } public function store(array $data): Post { return $this->post->create($data); } }
Without Interface
<?php namespace App\Repositories; use App\Models\Post; class PostRepository { protected $post; public function __construct(Post $post){ $this->post = $post; } public function store(array $data): Post { return $this->post->create($data); } }
How to implement it on the controller?
<?php namespace App\Repositories; use App\Models\Post; use App\Repositories\Interfaces\PostServiceInterface; use App\Http\Requests\PostRequest; class PostController extends Controller { protected $postService; public function __construct(PostServiceInterface $postService) { $this->postService = $postService; } public function store(PostRequest $request): RedirectResponse { $data = $request->validated(); $this->postService->store($data); return redirect()->route('posts.index')->with('success', __('post created')); } }
Just change PostRepositoryInterface to PostRepository if you are implementing without interface
Contributing
Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities.
How can I thank you?
Why not star the github repo? I'd love the attention! Why not share the link for this repository on any social media? Spread the word!
Thanks! visiarch
License
The MIT License (MIT). Please see License File for more information.
visiarch/laravel-repository 适用场景与选型建议
visiarch/laravel-repository 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 16 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 06 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「generator」 「php」 「repository」 「github」 「command」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 visiarch/laravel-repository 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 visiarch/laravel-repository 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 visiarch/laravel-repository 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Memio's PrettyPrinter, used to generate PHP code from given Model
repository php library
Laravel 5 - Repositories to the database layer
Structure for the Laravel Service-Repository Pattern
Rinvex Repository is a simple, intuitive, and smart implementation of Active Repository with extremely flexible & granular caching system for Laravel, used to abstract the data layer, making applications more flexible to maintain.
Base Skeleton for Laravel Application
统计信息
- 总下载量: 16
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 7
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-06-29
