lowel/laravel-service-maker
最新稳定版本:1.0.1
Composer 安装命令:
composer require lowel/laravel-service-maker
包简介
A package for Laravel 9+ that helps generate layered services according to the Interface-Service-Factory pattern using laravel's built-in DI.
README 文档
README
This Laravel package provides Artisan commands to quickly generate service and repository classes with their corresponding interfaces and factories following a standardized structure.
Installation
- Install the package via Composer:
composer require lowel/laravel-service-maker
- The package will automatically register its service provider. If you need to publish the configuration file:
php artisan vendor:publish --provider="Lowel\\LaravelServiceMaker\\LaravelServiceMakerProvider" --tag="config"
Commands
Create a new service
php artisan lowel:make:service {name} {--s|singleton}
Options:
name: The name of the service (e.g.,Paymentwill createPaymentService)--s|singleton: Create the service as a singleton
Example:
php artisan lowel:make:service Payment
This will generate:
App/Services/Payment/PaymentService.phpApp/Services/Payment/PaymentServiceInterface.phpApp/Services/Payment/PaymentServiceFactory.php
Create a new repository
php artisan lowel:make:repository {name} {--s|singleton}
Options:
name: The name of the repository (e.g.,Userwill createUserRepository)--s|singleton: Create the repository as a singleton
Example:
php artisan lowel:make:repository User --singleton
This will generate:
App/Repositories/User/UserRepository.phpApp/Repositories/User/UserRepositoryInterface.phpApp/Repositories/User/UserRepositoryFactory.php
File Structure
The package follows this directory structure:
app/
├── Repositories/
│ ├── {RepositoryName}/
│ │ ├── {RepositoryName}Repository.php
│ │ ├── {RepositoryName}RepositoryInterface.php
│ │ └── {RepositoryName}RepositoryFactory.php
└── Services/
├── {ServiceName}/
│ ├── {ServiceName}Service.php
│ ├── {ServiceName}ServiceInterface.php
│ └── {ServiceName}ServiceFactory.php
Usage
After generating the classes, you can use them through Laravel's dependency injection:
use App\Services\Payment\PaymentServiceInterface; use App\Repositories\User\UserRepositoryInterface; use Illuminate\Support\Facades\App; // Using app() helper $service = app(PaymentServiceInterface::class); $repository = app(UserRepositoryInterface::class); // Using App facade $service = App::make(PaymentServiceInterface::class); // Using constructor injection public function __construct( PaymentServiceInterface $paymentService, UserRepositoryInterface $userRepository ) { // ... }
The package automatically registers the interfaces in Laravel's container, binding them to their concrete implementations.
Configuration
You can customize the generation behavior by publishing and modifying the package configuration file:
php artisan vendor:publish --provider="Lowel\\LaravelServiceMaker\\LaravelServiceMakerProvider" --tag="config"
This will create config/service-maker.php where you can configure:
- Base paths
- Class mapping
- Formatting
Requirements
- PHP 8.3+
- Laravel 9+
License
This package is open-sourced software licensed under the MIT license.
统计信息
- 总下载量: 35
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-06