degraciamathieu/laravel-rapid-bind
最新稳定版本:1.0.0
Composer 安装命令:
composer require degraciamathieu/laravel-rapid-bind
包简介
Quickly and easily create singletons in the Laravel container with annotations
README 文档
README
laravel-rapid-bind
In an architecture based on ports and adapters, we create many bindings between interfaces and implementations.
Often, these bindings are simple and require no additional configuration.
This package facilitates the creation of these bindings, helping you avoid cluttering your AppServiceProvider.
Installation
Requires >= PHP 8.1
composer require degraciamathieu/laravel-rapid-bind
Usage
Provide information on the folders containing the interfaces :
<?php namespace App\Providers; class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ public function register(): void { RapidBind::bind([ '../app/Domain/Ports/Repositories', ]); } /** * Bootstrap any application services. */ public function boot(): void { // } }
Now, add the Bind annotation on the port with the value of the FQCN of the associated adapter :
<?php namespace App\Domain\Ports\Repositories; use DeGraciaMathieu\RapidBind\Bind; use App\Infrastructure\Repositories\UserRepositoryAdapter; #[Bind(UserRepositoryAdapter::class)] interface UserRepository { // }
<?php namespace App\Infrastructure\Repositories; use App\Domain\Ports\Repositories\UserRepository; class UserRepositoryAdapter implements UserRepository { // }
From now on, a singleton has been automatically created between the port and the adapter !
$userRepository = app(UserRepository::class); dd($userRepository); // App\Infrastructure\Repositories\UserRepositoryAdapter
统计信息
- 总下载量: 69
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2024-06-25