iidestiny / dependency-injection
使您的类方法也能使用依赖注入
1.1
2022-06-27 17:13 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-08-27 22:00:57 UTC
README
让您的自定义类方法也能享受依赖注入。
感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!
文档
要求
- PHP >= 7.0
安装
composer require iidestiny/dependency-injection -vvv
用法
使用辅助方法
// register class di_register(Tools::class) // Call a method in a class di_register(Tools::class)->generate($param, $param, $param) // more di_register(Tools::class)->foo($bar)
示例
有时在调用自己定义的方法时我们需要依赖注入。以下是一个示例。
<?php namespace App\Services; use App\Tools; use App\User; use Cache; use Petstore30\Order; class OrderService { /** * place order * * @param User $user * @param $goods * @param $address * @param Cache $cache * @param Tools $tools */ public function placeOrder(User $user, $goods, $address, Cache $cache, Tools $tools) { // code something } /** * pay * * @param Order $order * @param Cache $cache * @param Tools $tools */ public function pay(Order $order, Cache $cache, Tools $tools) { // code something } }
然后我们可以轻松地使用依赖注入方法
/** * store */ public function store() { di_register(OrderService::class)->placeOrder($user, $goods, $address); }
或
/** * store */ public function store() { $orderService = di_register(OrderService::class); $orderService->placeOrder($user, $goods, $address); $orderService->pay($order); }
许可证
MIT