digicomp / flowobjectresolving
提供了一种简单且标准的方式,用于解析具有良好名称的服务类
2.1.0
2023-10-26 17:58 UTC
Requires
- php: ^7.2 | ^8.0
- neos/flow: ^5.3 | ^6.0 | ^7.0 | ^8.0
This package is auto-updated.
Last update: 2024-09-21 11:24:18 UTC
README
此包旨在帮助您的依赖注入(DI)将易于阅读的人类名称解析为类名,这些类名应该被使用。
此外,它允许您获取所有这些良好名称的列表,如果您想的话,可以从CommandController中列出它们。
class DefaultResolver { use ResolverTrait; protected static function getManagedInterface(): string { return RequestPatternInterface::class; } protected static function getManagedNamespace(string $packageKey): string { return 'Security\\RequestPattern\\'; } }
例如,此类可以通过简单的getAvailableNames
列出以下内容:
['Neos.Flow:ControllerObjectName', 'Neos.Flow:CsrfProtection', 'Neos.Flow:Host', 'Neos.Flow:Ip', 'Neos.Flow:Uri']
现在,可以使用(new DefaultResolver)->resolveObjectName('Neos.Flow:ControllerObjectName')
等代码将这些插件解析为实例。对于解析器来说,getDefaultNamespace
和getDefaultPackage
是可选的,如果没有重写,将解析为使用该特质的类。
在getDefaultPackageKey
中的ObjectManagerInterface
存在,因为这个函数使用了flow的CompileStatic
功能。
名称按以下方案构建:{packageKey}{namespace}{name}
- 如果您需要为不同的包使用不同的命名空间,您应该实现自己的条件,或者甚至使用getManagedNamespace
中的配置 - 您将获得packageKey作为参数。
不遵循默认模式的类仍然可以用于,并且将列出其完全限定名(FQCN)。