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

	// get all available modules
	$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);
	}

	// collect classes
	foreach ($moduleList as $moduleName)
	{
		$ufPath = $basePath.$moduleName.'/meta/'.static::ANNOTATION_UF_FILENAME;

		if (file_exists($ufPath))
		{
			$classes = include $ufPath;

			foreach ($classes as $class)
			{
				if (class_exists($class))
				{
					$this->entitiesFound[] = [
						'class' => $class,
						'ufOnly' => true,
					];
				}
			}
		}
	}

	// clear diff buffer
	$this->getDeclaredClassesDiff();
}