respect/parameter
最新稳定版本:1.0.0
Composer 安装命令:
composer require respect/parameter
包简介
Resolves function/constructor parameters via type and name lookup
README 文档
README
Resolves function and constructor parameters from a PSR-11 container by type.
Install
composer require respect/parameter
Usage
Resolve from a container
For each parameter the resolver tries, in order:
- Positional argument of matching type
- Container match by type (non-builtin)
- Next positional argument
- Default value
null
use Respect\Parameter\Resolver; function notify(Mailer $mailer, Logger $logger, string $to, string $subject = 'Hi') { // ... } $resolver = new Resolver($container); $args = $resolver->resolve(new ReflectionFunction('notify'), ['bob@example.com']); // ['mailer' => Mailer, 'logger' => Logger, 'to' => 'bob@example.com', 'subject' => 'Hi']
Results are keyed by parameter name, so you can spread them with named arguments:
notify(...$args);
Resolve with named arguments
When arguments are keyed by name (e.g. from configuration):
$args = $resolver->resolveNamed( $constructor, ['username' => 'admin', 'password' => 'secret'], ); // Named args take precedence, gaps filled from container by name and type
Reflect any callable
Convert any callable form into a ReflectionFunctionAbstract:
use Respect\Parameter\Resolver; Resolver::reflectCallable(fn() => ...); // Closure Resolver::reflectCallable([$obj, 'method']); // Array callable Resolver::reflectCallable(new Invocable()); // __invoke object Resolver::reflectCallable('strlen'); // Function name Resolver::reflectCallable('DateTime::createFromFormat'); // Static method
Check accepted types
Resolver::acceptsType($reflection, LoggerInterface::class); // true/false
API
| Method | Type | Description |
|---|---|---|
resolve($reflection, $positional) |
instance | Resolve parameters from positional args + container. Returns array<string, mixed> keyed by parameter name |
resolveNamed($reflection, $named) |
instance | Resolve from named args (priority) + container. Returns array<string, mixed> keyed by parameter name |
reflectCallable($callable) |
static | Any callable to ReflectionFunctionAbstract |
acceptsType($reflection, $type) |
static | Check if any parameter accepts a type |
License
ISC. See LICENSE.
统计信息
- 总下载量: 124
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: ISC
- 更新时间: 2026-03-22