public function __construct(ClassLoader $original, AspectContainer $container, array $options = [])
{
$this->options = $options;
$this->original = $original;
$prefixes = $original->getPrefixes();
$excludePaths = $options['excludePaths'];
if (!empty($prefixes)) {
// Let's exclude core dependencies from that list
if (isset($prefixes['Dissect'])) {
$excludePaths[] = $prefixes['Dissect'][0];
}
if (isset($prefixes['Doctrine\\Common\\Annotations\\'])) {
$excludePaths[] = substr($prefixes['Doctrine\\Common\\Annotations\\'][0], 0, -16);
}
}
$fileEnumerator = new Enumerator($options['appDir'], $options['includePaths'], $excludePaths);
$this->fileEnumerator = $fileEnumerator;
$this->cacheState = $container->get('aspect.cache.path.manager')->queryCacheState();
}