• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/cli/ormannotatecommand.php
  • Класс: BitrixMainCliOrmAnnotateCommand
  • Вызов: OrmAnnotateCommand::getDirsToScan
protected function getDirsToScan($inputModules, InputInterface $input, OutputInterface $output)
{
	$basePaths = [
		//Application::getDocumentRoot().Application::getPersonalRoot().'/modules/',
		Application::getDocumentRoot().'/local/modules/'
	];

	$dirs = [];

	foreach ($basePaths as $basePath)
	{
		if (!file_exists($basePath))
		{
			continue;
		}

		$moduleList = [];

		foreach (new DirectoryIterator($basePath) as $item)
		{
			if($item->isDir() && !$item->isDot())
			{
				$moduleList[] = $item->getFilename();
			}
		}

		// filter for input modules
		if (!empty($inputModules))
		{
			$moduleList = array_intersect($moduleList, $inputModules);
		}

		foreach ($moduleList as $moduleName)
		{
			// filter for installed modules
			if (!Loader::includeModule($moduleName))
			{
				continue;
			}

			$libDir = $basePath.$moduleName.'/lib';
			if (is_dir($libDir) && is_readable($libDir))
			{
				$dirs[] = $libDir;
			}

			$libDir = $basePath.$moduleName.'/dev/lib';
			if (is_dir($libDir) && is_readable($libDir))
			{
				$dirs[] = $libDir;
			}

			$this->modulesScanned[] = $moduleName;
		}
	}

	return $dirs;
}