SensioLabs\Deptrac\RulesetEngine::getViolations PHP Метод

getViolations() публичный Метод

public getViolations ( DependencyResult $dependencyResult, SensioLabs\Deptrac\ClassNameLayerResolverInterface $classNameLayerResolver, ConfigurationRuleset $configurationRuleset ) : RulesetViolation[]
$dependencyResult DependencyResult
$classNameLayerResolver SensioLabs\Deptrac\ClassNameLayerResolverInterface
$configurationRuleset SensioLabs\Deptrac\Configuration\ConfigurationRuleset
Результат SensioLabs\Deptrac\RulesetEngine\RulesetViolation[]
    public function getViolations(DependencyResult $dependencyResult, ClassNameLayerResolverInterface $classNameLayerResolver, ConfigurationRuleset $configurationRuleset)
    {
        $violations = [];
        foreach ($dependencyResult->getDependenciesAndInheritDependencies() as $dependency) {
            $layerNames = $classNameLayerResolver->getLayersByClassName($dependency->getClassA());
            foreach ($layerNames as $layerName) {
                foreach ($classNameLayerResolver->getLayersByClassName($dependency->getClassB()) as $layerNameOfDependency) {
                    if ($layerName == $layerNameOfDependency) {
                        continue;
                    }
                    if (in_array($layerNameOfDependency, $configurationRuleset->getAllowedDependendencies($layerName))) {
                        continue;
                    }
                    $violations[] = new RulesetViolation($dependency, $layerName, $layerNameOfDependency, '');
                }
            }
        }
        return $violations;
    }
RulesetEngine