edykim/laravel-container-helper
最新稳定版本:v0.0.2
Composer 安装命令:
composer require edykim/laravel-container-helper
包简介
A simple helper for Laravel service container
README 文档
README
This package provides a simple helper for Laravel Container. It allows you to generate an inline utility class that implements a given interface, making your application's logic more configurable.
Getting Started
Installation
$ composer require edykim/laravel-container-helper
Lazy
This function offers a lazy-loaded proxy instance of a given concrete implementation for lazy instantiation.
use function Edykim\LaravelContainerHelper\Support\instance; // ... $app->bind( CalculatorInterface::class, instance(CalculatorInterface::class) ->lazy(HeavilyLoadedCalculator::class) );
Sequence
use function Edykim\LaravelContainerHelper\Support\instance; // ... $app->bind( CalculatorInterface::class, instance(CalculatorInterface::class) ->sequence( SimpleProductCalculator::class, DigitalProductCalculator::class, ShippingChargeCalculator::class, ) );
Conditional
class HasDigitalProducts { public function check(Cart $cart): bool { // ... } }
use function Edykim\LaravelContainerHelper\Support\instance; // ... $app->bind( CalculatorInterface::class, instance(CalculatorInterface::class) ->when( HasDigitalProduct::class, DigitalProductCalculator::class, SimpleProductCalculator::class, ) );
Nested
use function Edykim\LaravelContainerHelper\Support\instance; use Edykim\LaravelContainerHelper\Support\Instance; // ... $app->bind( CalculatorInterface::class, instance(CalculatorInterface::class) ->with(fn (Instance $instance) => $instance->sequence( $instance->lazy( $instance->when( HasCouponWithThirdPartyCompany::class, ThirdPartyCouponCalculator::class, NothingCalculator::class, ), ), SimpleProductCalculator::class, DigitalProductCalculator::class, $instance->when( [IsPlusLevelCustomer::class, 'validate'], PlusLevelCustomerDiscountCalculator::class, $instance->when( [IsMedicalProvider::class, 'validate'], MedicalProviderDiscountCalculator::class, NothingCalculator::class, ), ), ), ); );
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-07-23