/** * @return array */ public function getNamespaces() { $composer = $this->getComposer(); $autoloadGenerator = $composer->getAutoloadGenerator(); $installationManager = $composer->getInstallationManager(); $mainPackage = $composer->getPackage(); $namespaces = array(); foreach ($this->_appInstallation->getComposerPackagesFiltered() as $package) { $packageMap = array(array($package, $installationManager->getInstallPath($package))); $autoloads = $autoloadGenerator->parseAutoloads($packageMap, $mainPackage); $packageNamespaces = array_merge(array_keys($autoloads['psr-0']), array_keys($autoloads['psr-4'])); $namespaces = array_merge($namespaces, $packageNamespaces); } return array_map(function ($namespace) { return preg_replace('/_$/', '', $namespace); }, $namespaces); }