예제 #1
0
 /**
  * @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);
 }