protected function execute(InputInterface $input, OutputInterface $output) { $component = new BitrixComponent($input->getArgument('name')); if ($component->exists()) { $output->writeln("<error>Component {$componentName} already exists!</error>"); $output->writeln("<info>" . $component->getComponentDir() . "</info>"); return 1; } $namespace = $component->getNamespace(); $componentName = $component->getName(); $siteRoot = BitrixTool::getInstance()->getSiteRoot(); if (!$siteRoot) { $output->writeln("<error>Not in a Bitrix web root!</error>"); return 1; } $bitrixFolder = $input->getOption('bitrix') ? 'btrix' : 'local'; $componentFolder = "{$siteRoot}/{$bitrixFolder}/components/{$namespace}/{$componentName}"; $componentTemplateFolder = "{$componentFolder}/template/.default"; $componentFiles = array('description' => "{$componentFolder}/.description.php", 'parameters' => "{$componentFolder}/.parameters.php", 'component' => "{$componentFolder}/component.php", 'template' => "{$componentTemplateFolder}/template.php"); // Создаем структуру каталогов. if (!file_exists($componentTemplateFolder) && !$this->createFolder($componentTemplateFolder)) { return 1; } file_put_contents($componentFiles['component'], COMPONENT_TEMPLATE_COMPONENT); file_put_contents($componentFiles['parameters'], COMPONENT_TEMPLATE_PARAMETERS); file_put_contents($componentFiles['description'], COMPONENT_TEMPLATE_DESCRIPTION); file_put_contents($componentFiles['template'], COMPONENT_TEMPLATE_TEMPLATE); }