| Current Path : /home/rtorresani/www/setup/src/Magento/Setup/Console/Command/ |
| Current File : //home/rtorresani/www/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup\Console\Command;
use Magento\Setup\Module\I18n\ServiceLocator;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Command for i18n dictionary generation
*/
class I18nCollectPhrasesCommand extends Command
{
/**#@+
* Keys and shortcuts for input arguments and options
*/
const INPUT_KEY_DIRECTORY = 'directory';
const INPUT_KEY_OUTPUT = 'output';
const SHORTCUT_KEY_OUTPUT = 'o';
const INPUT_KEY_MAGENTO = 'magento';
const SHORTCUT_KEY_MAGENTO = 'm';
/**#@- */
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName('i18n:collect-phrases')
->setDescription('Discovers phrases in the codebase');
$this->setDefinition([
new InputArgument(
self::INPUT_KEY_DIRECTORY,
InputArgument::OPTIONAL,
'Directory path to parse. Not needed if --magento flag is set'
),
new InputOption(
self::INPUT_KEY_OUTPUT,
self::SHORTCUT_KEY_OUTPUT,
InputOption::VALUE_REQUIRED,
'Path (including filename) to an output file. With no file specified, defaults to stdout.'
),
new InputOption(
self::INPUT_KEY_MAGENTO,
self::SHORTCUT_KEY_MAGENTO,
InputOption::VALUE_NONE,
'Use the --magento parameter to parse the current Magento codebase.' .
' Omit the parameter if a directory is specified.'
),
]);
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$directory = $input->getArgument(self::INPUT_KEY_DIRECTORY);
if ($input->getOption(self::INPUT_KEY_MAGENTO)) {
$directory = BP;
if ($input->getArgument(self::INPUT_KEY_DIRECTORY)) {
throw new \InvalidArgumentException('Directory path is not needed when --magento flag is set.');
}
} elseif (!$input->getArgument(self::INPUT_KEY_DIRECTORY)) {
throw new \InvalidArgumentException('Directory path is needed when --magento flag is not set.');
}
$generator = ServiceLocator::getDictionaryGenerator();
$generator->generate(
$directory,
$input->getOption(self::INPUT_KEY_OUTPUT),
$input->getOption(self::INPUT_KEY_MAGENTO)
);
$output->writeln('<info>Dictionary successfully processed.</info>');
return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
}
}