diff --git a/application/Espo/Classes/AppInfo/Binding.php b/application/Espo/Classes/AppInfo/Binding.php index 23c43eac8d..559cda3a14 100644 --- a/application/Espo/Classes/AppInfo/Binding.php +++ b/application/Espo/Classes/AppInfo/Binding.php @@ -34,6 +34,7 @@ use Espo\Core\{ Utils\Module, Binding\EspoBindingLoader, Binding\Binding as BindingItem, + Console\Params, }; class Binding @@ -45,7 +46,7 @@ class Binding $this->fileManager = $fileManager; } - public function process(array $options, array $flagList) : ?string + public function process(Params $params) : ?string { $result = ''; diff --git a/application/Espo/Classes/AppInfo/Container.php b/application/Espo/Classes/AppInfo/Container.php index 204e184e58..33a647ef5d 100644 --- a/application/Espo/Classes/AppInfo/Container.php +++ b/application/Espo/Classes/AppInfo/Container.php @@ -32,6 +32,7 @@ namespace Espo\Classes\AppInfo; use Espo\Core\{ Container as ContainerService, Utils\Metadata, + Console\Params, }; class Container @@ -45,9 +46,9 @@ class Container $this->metadata = $metadata; } - public function process(array $options, array $flagList) : ?string + public function process(Params $params) : ?string { - $nameOnly = in_array('nameOnly', $flagList); + $nameOnly = $params->hasFlag('nameOnly'); $result = ''; diff --git a/application/Espo/Core/Console/Commands/AppInfo.php b/application/Espo/Core/Console/Commands/AppInfo.php index 59bf98e7a8..77132ebcd7 100644 --- a/application/Espo/Core/Console/Commands/AppInfo.php +++ b/application/Espo/Core/Console/Commands/AppInfo.php @@ -33,11 +33,16 @@ use Espo\Core\{ InjectableFactory, Utils\File\Manager as FileManager, Console\Command, + Console\Params, + Console\IO, }; +use RuntimeException; + class AppInfo implements Command { protected $injectableFactory; + protected $fileManager; public function __construct(InjectableFactory $injectableFactory, FileManager $fileManager) @@ -46,41 +51,49 @@ class AppInfo implements Command $this->fileManager = $fileManager; } - public function run(array $options, array $flagList) + public function run(Params $params, IO $io) : void { $fileList = $this->fileManager->getFileList('application/Espo/Classes/AppInfo'); - $typeList = array_map(function ($item) { - return lcfirst(substr($item, 0, -4)); - }, $fileList); + $typeList = array_map( + function ($item) { + return lcfirst(substr($item, 0, -4)); + }, + $fileList + ); foreach ($typeList as $type) { - if (in_array($type, $flagList)) { - $this->processType($type, $options, $flagList); + if ($params->hasFlag($type)) { + $this->processType($io, $type, $params); return; } } - if (empty($flagList)) { - echo "No parameters specified.\n"; + if (count($params->getFlagList()) === 0) { + $io->writeLine("No flag specified."); + + $io->writeLine(""); + $io->writeLine("Available flags:"); + $io->writeLine(" --container"); + $io->writeLine(" --binding"); return; } - echo "Bad parameters specified.\n"; + $io->writeLine("Not supported flag specified."); } - protected function processType(string $type, array $options, array $flagList) + protected function processType(IO $io, string $type, Params $params) : void { $className = 'Espo\\Classes\\AppInfo\\' . ucfirst($type); $obj = $this->injectableFactory->create($className); - $result = $obj->process($options, $flagList); + $result = $obj->process($params); if ($result) { - echo $result; + $io->write($result); } } }