public function getDefinitions() { $definitions =
[];
$reader =
$this->
getAnnotationReader();
// Clear the annotation loaders of any previous annotation classes.
AnnotationRegistry::
reset();
// Register the namespaces of classes that can be used for annotations.
AnnotationRegistry::
registerLoader('class_exists'
);
// Search for classes within all PSR-4 namespace locations.
foreach ($this->
getPluginNamespaces() as $namespace =>
$dirs) { foreach ($dirs as $dir) { if (file_exists($dir)) { $iterator =
new \
RecursiveIteratorIterator( new \
RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS
) );
foreach ($iterator as $fileinfo) { if ($fileinfo->
getExtension() == 'php'
) { if ($cached =
$this->fileCache->
get($fileinfo->
getPathName())) { if (isset($cached['id'
])) { // Explicitly unserialize this to create a new object instance.
$definitions[$cached['id'
]] =
unserialize($cached['content'
]);
}