respect/parameter
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 arguments
For each parameter the resolver tries, in order:
- An explicit named argument (keyed by parameter name)
- A positional argument already matching the parameter type
- The container, matched by type (non-builtin)
- The next positional argument
- The parameter's default value
null
A trailing variadic parameter receives a matching named argument (if any) followed by every remaining positional argument.
use Respect\Parameter\ContainerResolver; function notify(Mailer $mailer, Logger $logger, string $to, string $subject = 'Hi') { // ... } $resolver = new ContainerResolver($container); $args = $resolver->resolve(new ReflectionFunction('notify'), ['bob@example.com']); // [Mailer, Logger, 'bob@example.com', 'Hi'] — ordered, ready to splat
The result is an ordered list, so spread it straight into the call or constructor:
notify(...$args); // or $reflection->newInstanceArgs($args);
Named arguments
resolve() accepts named arguments too — keyed by parameter name, taking precedence over the
container; the remaining parameters are filled by type and defaults:
$args = $resolver->resolve($constructor, ['username' => 'admin']);
Bind to the interface
Type-hint Resolver (the resolve() contract) rather than the concrete ContainerResolver to stay
decoupled from the implementation:
use Respect\Parameter\Resolver; final class Factory { public function __construct(private Resolver $resolver) { } }
Reflect any callable
Convert any callable form into a ReflectionFunctionAbstract:
use Respect\Parameter\ContainerResolver; ContainerResolver::reflectCallable(fn() => ...); // Closure ContainerResolver::reflectCallable([$obj, 'method']); // Array callable ContainerResolver::reflectCallable(new Invocable()); // __invoke object ContainerResolver::reflectCallable('strlen'); // Function name ContainerResolver::reflectCallable('DateTime::createFromFormat'); // Static method
Check accepted types
ContainerResolver::acceptsType($reflection, LoggerInterface::class); // true/false
API
| Method | Type | Description |
|---|---|---|
resolve($reflection, $arguments) |
instance | Resolve named/positional arguments + container into an ordered list<mixed>, expanding variadics |
reflectCallable($callable) |
static | Any callable to ReflectionFunctionAbstract |
acceptsType($reflection, $type) |
static | Check if any parameter accepts a type |
ContainerResolver implements Resolver.
License
ISC. See LICENSE.
respect/parameter 适用场景与选型建议
respect/parameter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 245 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「respect」 「resolver」 「dependency-injection」 「parameter」 「Autowiring」 「PSR-11」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 respect/parameter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 respect/parameter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 respect/parameter 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Type transformers, normalizers and resolvers.
Inspired 'KennedyTedesco Validation' - The power of 'Respect Validation' on Laravel.
resolve openapi keywords
Supporing Symfony's DependencyInjection component for your symfony1 project
The power of 'Respect Validation' on Laravel.
PhpPlaisio: Company Resolver
统计信息
- 总下载量: 245
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 42
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: ISC
- 更新时间: 2026-03-22