/** * Find all classes in a folder. * * @param string $subfolder * @return \ReflectionClass array */ public function findClasses($subfolder) { $classes = array(); $folder = new Fs\Folder($this->path() . $subfolder); if ($folder->exists()) { $items = $folder->ls(); foreach ($items as $item) { if ($item instanceof Fs\File) { $subParts = explode('/', $subfolder); $subParts = array_map("ucfirst", $subParts); $className = 'GO\\' . ucfirst($this->id()) . '\\' . implode('\\', $subParts) . '\\' . $item->nameWithoutExtension(); if (class_exists($className)) { $reflectionClass = new \ReflectionClass($className); if (!$reflectionClass->isAbstract()) { $classes[] = $reflectionClass; } } } } } return $classes; }