/** * @inheritDoc */ public function canInject(&$instance, Dependency $dependency) : bool { foreach ($this->getDependencyInterfaces($dependency->getValue()) as $interface) { $injectionInterfaceName = $interface . 'Aware'; if (is_subclass_of($dependency->getValue(), $injectionInterfaceName)) { return true; } } return false; }
/** * @param Dependency $dependency * @return string */ protected function getFavoriteStrategyDependencyTag(Dependency $dependency) { if ($dependency instanceof PropertyDependency) { $tag = 'property:' . $dependency->getPropertyName(); } else { $value = $dependency->getValue(); if (gettype($value) !== 'object') { $tag = 'type:' . gettype($value); } else { $tag = 'type:' . get_class($value); } } return $tag; }