protected function getClassMapForGroup($group, OutputInterface $output)
{
/**
* Generate resource helper only for Magento >= EE 1.11 or CE 1.6
*/
if ($group == 'resource helpers') {
return $this->getResourceHelperMap();
}
$classes = array();
foreach ($this->getGroupXmlDefinition($group) as $prefix => $modelDefinition) {
if ($group == 'resource models') {
if (empty($modelDefinition->resourceModel)) {
continue;
}
$resourceModelNodePath = 'global/models/' . strval($modelDefinition->resourceModel);
$resourceModelConfig = \Mage::getConfig()->getNode($resourceModelNodePath);
if ($resourceModelConfig) {
$classPrefix = strval($resourceModelConfig->class);
}
} else {
$classPrefix = strval($modelDefinition->class);
}
if (empty($classPrefix)) {
continue;
}
$classBaseFolder = str_replace('_', '/', $classPrefix);
$searchFolders = array(\Mage::getBaseDir('code') . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . $classBaseFolder, \Mage::getBaseDir('code') . DIRECTORY_SEPARATOR . 'community' . DIRECTORY_SEPARATOR . $classBaseFolder, \Mage::getBaseDir('code') . DIRECTORY_SEPARATOR . 'local' . DIRECTORY_SEPARATOR . $classBaseFolder);
foreach ($searchFolders as $key => $folder) {
if (!is_dir($folder)) {
unset($searchFolders[$key]);
}
}
if (empty($searchFolders)) {
continue;
}
$finder = Finder::create();
$finder->files()->in($searchFolders)->followLinks()->ignoreUnreadableDirs(true)->name('*.php')->notName('install-*')->notName('upgrade-*')->notName('mysql4-*')->notName('mssql-*')->notName('oracle-*');
foreach ($finder as $file) {
$classIdentifier = $this->getClassIdentifier($file, $prefix, $group);
$classNameByPath = $this->getRealClassname($file, $classPrefix);
switch ($group) {
case 'blocks':
$classNameAfterRewrites = \Mage::getConfig()->getBlockClassName($classIdentifier);
break;
case 'helpers':
$classNameAfterRewrites = \Mage::getConfig()->getHelperClassName($classIdentifier);
break;
case 'models':
$classNameAfterRewrites = \Mage::getConfig()->getModelClassName($classIdentifier);
break;
case 'resource models':
default:
$classNameAfterRewrites = \Mage::getConfig()->getResourceModelClassName($classIdentifier);
break;
}
if ($classNameAfterRewrites) {
$addToList = true;
if ($classNameAfterRewrites === $classNameByPath && !$this->isClassDefinedInFile($file, $classNameByPath, $output)) {
$addToList = false;
}
if ($addToList) {
$classes[$classIdentifier] = $classNameAfterRewrites;
if ($group == 'helpers' && strpos($classIdentifier, '/') === false) {
$classes[$classIdentifier . '/data'] = $classNameAfterRewrites;
}
}
}
}
}
return $classes;
}