lithium\test\filter\Affected::_affected PHP Method

_affected() protected static method

Returns all classes directly depending on a given class.
protected static _affected ( string $dependency, string $exclude = null ) : array
$dependency string The class name to use as a dependency.
$exclude string Regex path exclusion filter.
return array Classes having a direct dependency on `$dependency`. May contain duplicates.
    protected static function _affected($dependency, $exclude = null)
    {
        $exclude = $exclude ?: '/(tests|webroot|resources|libraries|plugins)/';
        $classes = Libraries::find(true, compact('exclude') + array('recursive' => true));
        $dependency = ltrim($dependency, '\\');
        $affected = array();
        foreach ($classes as $class) {
            if (isset(static::$_cachedDepends[$class])) {
                $depends = static::$_cachedDepends[$class];
            } else {
                $depends = Inspector::dependencies($class);
                $depends = array_map(function ($c) {
                    return ltrim($c, '\\');
                }, $depends);
                static::$_cachedDepends[$class] = $depends;
            }
            if (in_array($dependency, $depends)) {
                $affected[] = $class;
            }
        }
        return $affected;
    }