/**
* @param \nochso\WriteMe\Document $document
*
* @return \BetterReflection\Reflection\ReflectionClass[]
*/
private function getClasses(Document $document)
{
$files = $this->getFiles($document);
$singleLocators = [];
foreach ($files as $file) {
$singleLocators[] = new SingleFileSourceLocator($file->getPathname());
}
$reflector = new ClassReflector(new AggregateSourceLocator($singleLocators));
$classes = $reflector->getAllClasses();
usort($classes, function (ReflectionClass $a, ReflectionClass $b) {
$ans = $a->getNamespaceName();
$bns = $b->getNamespaceName();
if ($ans === $bns) {
return strnatcmp($a->getShortName(), $b->getShortName());
}
return strnatcmp($ans, $bns);
});
return $classes;
}