Commit 9d7bd733 authored by guilhermeblanco's avatar guilhermeblanco

[2.0] Fixing issue with multiple class directory loading in Annotations driver

parent 8336bcc7
...@@ -346,25 +346,35 @@ class AnnotationDriver implements Driver ...@@ -346,25 +346,35 @@ class AnnotationDriver implements Driver
public function getAllClassNames() public function getAllClassNames()
{ {
if ($this->_classDirectory) { if ($this->_classDirectory) {
$iter = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->_classDirectory), $classes = array();
\RecursiveIteratorIterator::LEAVES_ONLY);
foreach ((array) $this->_classDirectory as $dir) {
$iter = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($this->_classDirectory),
\RecursiveIteratorIterator::LEAVES_ONLY
);
$declared = get_declared_classes(); $declared = get_declared_classes();
foreach ($iter as $item) { foreach ($iter as $item) {
$info = pathinfo($item->getPathName()); $info = pathinfo($item->getPathName());
if ( ! isset($info['extension']) || $info['extension'] != 'php') { if ( ! isset($info['extension']) || $info['extension'] != 'php') {
continue; continue;
} }
require_once $item->getPathName(); require_once $item->getPathName();
} }
$declared = array_diff(get_declared_classes(), $declared); $declared = array_diff(get_declared_classes(), $declared);
$classes = array();
foreach ($declared as $className) { foreach ($declared as $className) {
if ( ! $this->isTransient($className)) { if ( ! $this->isTransient($className)) {
$classes[] = $className; $classes[] = $className;
} }
} }
}
return $classes; return $classes;
} else { } else {
return array(); return array();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment