From 795a94b3daaf68a774113d07612700f579c98496 Mon Sep 17 00:00:00 2001 From: Eddie Lau <kahlau@ebay.com> Date: Wed, 29 Apr 2015 11:25:59 -0500 Subject: [PATCH] MAGETWO-36071: Move dev/tools/Magento/Tools/Dependency/generate/*.dependencies.php tools - moved * dependencies tools --- .../Command/AbstractDependenciesCommand.php | 62 +++++++++++++++++++ .../DependenciesShowFrameworkCommand.php | 47 ++++++++++++++ ...DependenciesShowModulesCircularCommand.php | 42 +++++++++++++ .../DependenciesShowModulesCommand.php | 42 +++++++++++++ .../Magento/Tools/Console/CommandList.php | 6 +- .../Tools/Dependency/generate/bootstrap.php | 7 --- .../generate/framework-dependencies.php | 39 ------------ .../modules-circular-dependencies.php | 34 ---------- .../generate/modules-dependencies.php | 35 ----------- 9 files changed, 198 insertions(+), 116 deletions(-) create mode 100644 dev/tools/Magento/Tools/Console/Command/AbstractDependenciesCommand.php create mode 100644 dev/tools/Magento/Tools/Console/Command/DependenciesShowFrameworkCommand.php create mode 100644 dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCircularCommand.php create mode 100644 dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCommand.php delete mode 100644 dev/tools/Magento/Tools/Dependency/generate/bootstrap.php delete mode 100644 dev/tools/Magento/Tools/Dependency/generate/framework-dependencies.php delete mode 100644 dev/tools/Magento/Tools/Dependency/generate/modules-circular-dependencies.php delete mode 100644 dev/tools/Magento/Tools/Dependency/generate/modules-dependencies.php diff --git a/dev/tools/Magento/Tools/Console/Command/AbstractDependenciesCommand.php b/dev/tools/Magento/Tools/Console/Command/AbstractDependenciesCommand.php new file mode 100644 index 00000000000..da55debb00b --- /dev/null +++ b/dev/tools/Magento/Tools/Console/Command/AbstractDependenciesCommand.php @@ -0,0 +1,62 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Tools\Console\Command; + +use Magento\Framework\App\Utility\Files; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +abstract class AbstractDependenciesCommand extends Command +{ + /** + * Input key for directory option + */ + const INPUT_KEY_DIRECTORY = 'directory'; + + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setDefinition([ + new InputOption( + self::INPUT_KEY_DIRECTORY, + 'd', + InputOption::VALUE_REQUIRED, + 'Path to base directory for parsing', + BP + ) + ] + ); + parent::configure(); + } + + /** + * Build dependencies report + * + * @return void + */ + abstract protected function buildReport(); + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + try { + Files::setInstance(new \Magento\Framework\App\Utility\Files($input->getOption(self::INPUT_KEY_DIRECTORY))); + $this->buildReport(); + $output->writeln('<info>Report successfully processed.</info>'); + } catch (\Exception $e) { + $output->writeln( + '<error>Please, check passed path. Dependencies report generator failed: ' . + $e->getMessage() . '</error>' + ); + } + } +} diff --git a/dev/tools/Magento/Tools/Console/Command/DependenciesShowFrameworkCommand.php b/dev/tools/Magento/Tools/Console/Command/DependenciesShowFrameworkCommand.php new file mode 100644 index 00000000000..9dc7ff43f46 --- /dev/null +++ b/dev/tools/Magento/Tools/Console/Command/DependenciesShowFrameworkCommand.php @@ -0,0 +1,47 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Tools\Console\Command; + +use Magento\Framework\App\Utility\Files; +use Magento\Tools\Dependency\ServiceLocator; + +/** + * Command for showing numbers of dependencies on Magento Framework + */ +class DependenciesShowFrameworkCommand extends AbstractDependenciesCommand +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setDescription('Shows number of dependencies on Magento framework') + ->setName('info:dependencies:show-framework'); + parent::configure(); + } + + /** + * Build Framework dependencies report + * + * @return void + */ + protected function buildReport() + { + $filesForParse = Files::init()->getFiles([Files::init()->getPathToSource() . '/app/code/Magento'], '*'); + $configFiles = Files::init()->getConfigFiles('module.xml', [], false); + + ServiceLocator::getFrameworkDependenciesReportBuilder()->build( + [ + 'parse' => [ + 'files_for_parse' => $filesForParse, + 'config_files' => $configFiles, + 'declared_namespaces' => Files::init()->getNamespaces(), + ], + 'write' => ['report_filename' => 'framework-dependencies.csv'], + ] + ); + } +} diff --git a/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCircularCommand.php b/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCircularCommand.php new file mode 100644 index 00000000000..10ac41906e4 --- /dev/null +++ b/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCircularCommand.php @@ -0,0 +1,42 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Tools\Console\Command; + +use Magento\Framework\App\Utility\Files; +use Magento\Tools\Dependency\ServiceLocator; + +/** + * Command for showing number of circular dependencies between modules + */ +class DependenciesShowModulesCircularCommand extends AbstractDependenciesCommand +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setDescription('Shows number of circular dependencies between modules') + ->setName('info:dependencies:show-modules-circular'); + parent::configure(); + } + + /** + * Build circular dependencies between modules report + * + * @return void + */ + protected function buildReport() + { + $filesForParse = Files::init()->getComposerFiles('code', false); + + ServiceLocator::getCircularDependenciesReportBuilder()->build( + [ + 'parse' => ['files_for_parse' => $filesForParse], + 'write' => ['report_filename' => 'modules-circular-dependencies.csv'], + ] + ); + } +} diff --git a/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCommand.php b/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCommand.php new file mode 100644 index 00000000000..838327d0d47 --- /dev/null +++ b/dev/tools/Magento/Tools/Console/Command/DependenciesShowModulesCommand.php @@ -0,0 +1,42 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Tools\Console\Command; + +use Magento\Framework\App\Utility\Files; +use Magento\Tools\Dependency\ServiceLocator; + +/** + * Command for showing number of dependencies between modules + */ +class DependenciesShowModulesCommand extends AbstractDependenciesCommand +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setDescription('Shows number of dependencies between modules') + ->setName('info:dependencies:show-modules'); + parent::configure(); + } + + /** + * Build circular dependencies between modules report + * + * @return void + */ + protected function buildReport() + { + $filesForParse = Files::init()->getComposerFiles('code', false); + + ServiceLocator::getDependenciesReportBuilder()->build( + [ + 'parse' => ['files_for_parse' => $filesForParse], + 'write' => ['report_filename' => 'modules-dependencies.csv'], + ] + ); + } +} diff --git a/dev/tools/Magento/Tools/Console/CommandList.php b/dev/tools/Magento/Tools/Console/CommandList.php index a25d185b58c..1b2f2b8dab9 100644 --- a/dev/tools/Magento/Tools/Console/CommandList.php +++ b/dev/tools/Magento/Tools/Console/CommandList.php @@ -20,7 +20,11 @@ class CommandList */ protected function getCommandsClasses() { - return []; + return [ + 'Magento\Tools\Console\Command\DependenciesShowFrameworkCommand', + 'Magento\Tools\Console\Command\DependenciesShowModulesCircularCommand', + 'Magento\Tools\Console\Command\DependenciesShowModulesCommand', + ]; } /** diff --git a/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php b/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php deleted file mode 100644 index ead28a57251..00000000000 --- a/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -require_once __DIR__ . '/../../../../../../app/autoload.php'; diff --git a/dev/tools/Magento/Tools/Dependency/generate/framework-dependencies.php b/dev/tools/Magento/Tools/Dependency/generate/framework-dependencies.php deleted file mode 100644 index ebdc4e12567..00000000000 --- a/dev/tools/Magento/Tools/Dependency/generate/framework-dependencies.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -require_once __DIR__ . '/bootstrap.php'; -use Magento\Framework\App\Utility\Files; -use Magento\Tools\Dependency\ServiceLocator; - -try { - $console = new \Zend_Console_Getopt(['directory|d=s' => 'Path to base directory for parsing']); - $console->parse(); - - $directory = $console->getOption('directory') ?: BP; - - Files::setInstance(new \Magento\Framework\App\Utility\Files($directory)); - $filesForParse = Files::init()->getFiles([Files::init()->getPathToSource() . '/app/code/Magento'], '*'); - $configFiles = Files::init()->getConfigFiles('module.xml', [], false); - - ServiceLocator::getFrameworkDependenciesReportBuilder()->build( - [ - 'parse' => [ - 'files_for_parse' => $filesForParse, - 'config_files' => $configFiles, - 'declared_namespaces' => Files::init()->getNamespaces(), - ], - 'write' => ['report_filename' => 'framework-dependencies.csv'], - ] - ); - - fwrite(STDOUT, PHP_EOL . 'Report successfully processed.' . PHP_EOL); -} catch (\Zend_Console_Getopt_Exception $e) { - fwrite(STDERR, $e->getUsageMessage() . PHP_EOL); - exit(1); -} catch (\Exception $e) { - fwrite(STDERR, 'Please, check passed path. Dependencies report generator failed: ' . $e->getMessage() . PHP_EOL); - exit(1); -} diff --git a/dev/tools/Magento/Tools/Dependency/generate/modules-circular-dependencies.php b/dev/tools/Magento/Tools/Dependency/generate/modules-circular-dependencies.php deleted file mode 100644 index ed5869bd2b0..00000000000 --- a/dev/tools/Magento/Tools/Dependency/generate/modules-circular-dependencies.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -require_once __DIR__ . '/bootstrap.php'; -use Magento\Framework\App\Utility\Files; -use Magento\Tools\Dependency\ServiceLocator; - -try { - $console = new \Zend_Console_Getopt(['directory|d=s' => 'Path to base directory for parsing']); - $console->parse(); - - $directory = $console->getOption('directory') ?: BP; - - Files::setInstance(new \Magento\Framework\App\Utility\Files($directory)); - $filesForParse = Files::init()->getComposerFiles('code', false); - - ServiceLocator::getCircularDependenciesReportBuilder()->build( - [ - 'parse' => ['files_for_parse' => $filesForParse], - 'write' => ['report_filename' => 'modules-circular-dependencies.csv'], - ] - ); - - fwrite(STDOUT, PHP_EOL . 'Report successfully processed.' . PHP_EOL); -} catch (\Zend_Console_Getopt_Exception $e) { - fwrite(STDERR, $e->getUsageMessage() . PHP_EOL); - exit(1); -} catch (\Exception $e) { - fwrite(STDERR, 'Please, check passed path. Dependencies report generator failed: ' . $e->getMessage() . PHP_EOL); - exit(1); -} diff --git a/dev/tools/Magento/Tools/Dependency/generate/modules-dependencies.php b/dev/tools/Magento/Tools/Dependency/generate/modules-dependencies.php deleted file mode 100644 index b32dadf099e..00000000000 --- a/dev/tools/Magento/Tools/Dependency/generate/modules-dependencies.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -require_once __DIR__ . '/bootstrap.php'; - -use Magento\Framework\App\Utility\Files; -use Magento\Tools\Dependency\ServiceLocator; - -try { - $console = new \Zend_Console_Getopt(['directory|d=s' => 'Path to base directory for parsing']); - $console->parse(); - - $directory = $console->getOption('directory') ?: BP; - - Files::setInstance(new \Magento\Framework\App\Utility\Files($directory)); - $filesForParse = Files::init()->getComposerFiles('code', false); - - ServiceLocator::getDependenciesReportBuilder()->build( - [ - 'parse' => ['files_for_parse' => $filesForParse], - 'write' => ['report_filename' => 'modules-dependencies.csv'], - ] - ); - - fwrite(STDOUT, PHP_EOL . 'Report successfully processed.' . PHP_EOL); -} catch (\Zend_Console_Getopt_Exception $e) { - fwrite(STDERR, $e->getUsageMessage() . PHP_EOL); - exit(1); -} catch (\Exception $e) { - fwrite(STDERR, 'Please, check passed path. Dependencies report generator failed: ' . $e->getMessage() . PHP_EOL); - exit(1); -} -- GitLab