hartmann / resolve-strategy-interface
resolve-strategies 允许您通过用户定义的过程解决依赖
1.1.0
2019-04-23 13:38 UTC
Requires
- php: >=7.1
- psr/container: ^1.0
This package is auto-updated.
Last update: 2024-09-24 01:38:12 UTC
README
策略允许您通过用户定义的过程解决依赖。
例如,如果有多个请求类(如 CreateUserRequest
、DeletePostRequest
等)继承自 Request
并以相同的方式创建
(例如使用 ::createFromEnvironment
方法),您可以使用 ResolveStrategy 执行以下操作
use \Hartmann\ResolveStrategy\ResolveStrategyInterface class ResolveRequestStrategy implements ResolveStrategyInterface { /** * Checks wether the given class can be resolved by this strategy * * @param string $class The fully qualified namespace of the class to be resolved * * @return bool */ public function suitable(string $class): bool { return method_exists($class, 'createFromEnvironment') && preg_match('/^.+?Request$/') === 1; } /** * A strategy allows you to resolve a dependency through a user-defined process. * For example, if a class is instantiated by a static method (e.g. ::createFromEnvironment), this can be resolved by a strategy. * * @param \Psr\Container\ContainerInterface $container The instance of the PSR-11 container * @param string $class The fully qualified namespace of the class to be resolved * * @return object The instance of the requested class */ public function resolve(\Psr\Container\ContainerInterface $container, string $class) { return call_user_func([$class, 'createFromEnvironment'], $container->get('environment')); } }