本文整理汇总了PHP中Symfony\Component\Console\Event\ConsoleCommandEvent类的典型用法代码示例。如果您正苦于以下问题:PHP ConsoleCommandEvent类的具体用法?PHP ConsoleCommandEvent怎么用?PHP ConsoleCommandEvent使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ConsoleCommandEvent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: listenForServerRunCommand
public function listenForServerRunCommand(ConsoleCommandEvent $event)
{
if (!$event->getCommand() instanceof ServerRunCommand) {
return;
}
$argv = $_SERVER['argv'];
if (count($argv) < 3) {
return;
}
// strip the application name
array_shift($argv);
// strip the command name
array_shift($argv);
$address = $argv[0];
if (0 !== strpos($address, '0.0.0.0')) {
return;
}
$address = str_replace('0.0.0.0', $this->getLocalIp(), $address);
$output = $event->getOutput();
$output->writeln(sprintf('If you are in a container you would probably prefer to use: <info>http://%s</info>', $address));
if (function_exists('uprofiler_enable')) {
$output->writeln(sprintf('XHProf UI: <info>http://%s/xhprof</info>', $address));
}
$output->writeln('');
}
示例2: setDefaultValues
/**
* @param ConsoleCommandEvent $event
*/
public function setDefaultValues(ConsoleCommandEvent $event)
{
/* @var Command $command */
$command = $event->getCommand();
$application = $command->getApplication();
$config = $application->getConfig();
if (in_array($command->getName(), $this->skipCommands)) {
return;
}
$input = $command->getDefinition();
$options = $input->getOptions();
foreach ($options as $key => $option) {
$defaultOption = sprintf('application.default.commands.%s.options.%s', str_replace(':', '.', $command->getName()), $key);
$defaultValue = $config->get($defaultOption);
if ($defaultValue) {
$option->setDefault($defaultValue);
}
}
$arguments = $input->getArguments();
foreach ($arguments as $key => $argument) {
$defaultArgument = sprintf('application.default.commands.%s.arguments.%s', str_replace(':', '.', $command->getName()), $key);
$defaultValue = $config->get($defaultArgument);
if ($defaultValue) {
$argument->setDefault($defaultValue);
}
}
}
示例3: onConsoleCommand
/**
* @param ConsoleCommandEvent $event
*
* @return void
* @throws CommandAlreadyRunningException
*/
public function onConsoleCommand(ConsoleCommandEvent $event)
{
// generate pid file name
$commandName = $event->getCommand()->getName();
// check for exceptions
if (in_array($commandName, $this->exceptionsList)) {
return;
}
$clearedCommandName = $this->cleanString($commandName);
$pidFile = $this->pidFile = $this->pidDirectory . "/{$clearedCommandName}.pid";
// check if command is already executing
if (file_exists($pidFile)) {
$pidOfRunningCommand = file_get_contents($pidFile);
$elements = explode(":", $pidOfRunningCommand);
if ($elements[0] == gethostname()) {
if (posix_getpgid($elements[1]) !== false) {
throw (new CommandAlreadyRunningException())->setCommandName($commandName)->setPidNumber($pidOfRunningCommand);
} else {
// pid file exist but the process is not running anymore
unlink($pidFile);
}
} else {
throw (new CommandAlreadyRunningException())->setCommandName($commandName)->setPidNumber($pidOfRunningCommand);
}
}
// if is not already executing create pid file
//file_put_contents($pidFile, getmypid());
// Añadimos hostname para verificar desde que frontal se estan ejecutando
$string = gethostname() . ":" . getmypid();
file_put_contents($pidFile, $string);
// register shutdown function to remove pid file in case of unexpected exit
register_shutdown_function(array($this, 'shutDown'), null, $pidFile);
}
示例4: validateDependencies
/**
* @param ConsoleCommandEvent $event
*/
public function validateDependencies(ConsoleCommandEvent $event)
{
/**
* @var \Drupal\AppConsole\Command\Command $command
*/
$command = $event->getCommand();
$output = $event->getOutput();
$application = $command->getApplication();
$messageHelper = $application->getHelperSet()->get('message');
/**
* @var TranslatorHelper
*/
$translatorHelper = $application->getHelperSet()->get('translator');
if (!$command instanceof Command) {
return;
}
$dependencies = $command->getDependencies();
if ($dependencies) {
foreach ($dependencies as $dependency) {
if (\Drupal::moduleHandler()->moduleExists($dependency) === false) {
$errorMessage = sprintf($translatorHelper->trans('commands.common.errors.module-dependency'), $dependency);
$messageHelper->showMessage($output, $errorMessage, 'error');
$event->disableCommand();
}
}
}
}
示例5: setDefaultValues
/**
* @param ConsoleCommandEvent $event
*/
public function setDefaultValues(ConsoleCommandEvent $event)
{
/** @var \Drupal\AppConsole\Command\Command $command */
$command = $event->getCommand();
/** @var \Drupal\AppConsole\Console\Application $command */
$application = $command->getApplication();
/** @var \Drupal\AppConsole\Config $config */
$config = $application->getConfig();
if (in_array($command->getName(), $this->skipCommands)) {
return;
}
$input = $command->getDefinition();
$options = $input->getOptions();
foreach ($options as $key => $option) {
$defaultOption = 'commands.' . str_replace(':', '.', $command->getName()) . '.options.' . $key;
$defaultValue = $config->get($defaultOption);
if ($defaultValue) {
$option->setDefault($defaultValue);
}
}
$arguments = $input->getArguments();
foreach ($arguments as $key => $argument) {
$defaultArgument = 'commands.' . str_replace(':', '.', $command->getName()) . '.arguments.' . $key;
$defaultValue = $config->get($defaultArgument);
if ($defaultValue) {
$argument->setDefault($defaultValue);
}
}
}
示例6: onConsoleCommand
/**
* @param ConsoleCommandEvent $event
*/
public function onConsoleCommand(ConsoleCommandEvent $event)
{
$command = $event->getCommand();
$input = $event->getInput();
if (in_array($command->getName(), $this->ignoredCommands)) {
$this->interactor->ignoreTransaction();
}
if ($this->newRelic->getName()) {
$this->interactor->setApplicationName($this->newRelic->getName(), $this->newRelic->getLicenseKey(), $this->newRelic->getXmit());
}
$this->interactor->setTransactionName($command->getName());
$this->interactor->enableBackgroundJob();
// send parameters to New Relic
foreach ($input->getOptions() as $key => $value) {
$key = '--' . $key;
if (is_array($value)) {
foreach ($value as $k => $v) {
$this->interactor->addCustomParameter($key . '[' . $k . ']', $v);
}
} else {
$this->interactor->addCustomParameter($key, $value);
}
}
foreach ($input->getArguments() as $key => $value) {
if (is_array($value)) {
foreach ($value as $k => $v) {
$this->interactor->addCustomParameter($key . '[' . $k . ']', $v);
}
} else {
$this->interactor->addCustomParameter($key, $value);
}
}
}
示例7: showGenerateDoc
/**
* @param ConsoleCommandEvent $event
* @return void
*/
public function showGenerateDoc(ConsoleCommandEvent $event)
{
/**
* @var \Drupal\Console\Command\Command $command
*/
$command = $event->getCommand();
/**
* @var \Drupal\Console\Console\Application $command
*/
$application = $command->getApplication();
/**
* @var \Drupal\Console\Config $config
*/
$config = $application->getConfig();
$input = $command->getDefinition();
$options = $input->getOptions();
$arguments = $input->getArguments();
if (isset($options['generate-doc']) && $options['generate-doc'] == 1) {
foreach ($this->skipOptions as $remove_option) {
unset($options[$remove_option]);
}
$parameters = ['options' => $options, 'arguments' => $arguments, 'command' => $command->getName(), 'description' => $command->getDescription(), 'aliases' => $command->getAliases()];
$renderedDoc = $application->getHelperSet()->get('renderer')->render('gitbook/generate-doc.md.twig', $parameters);
$output = $event->getOutput();
$output->writeln($renderedDoc);
$event->disableCommand();
}
}
示例8: setGlobalOptions
/**
* Before a Console command runs, examine the global
* commandline options from the event Input, and set
* configuration values as appropriate.
*
* @param ConsoleCommandEvent $event
*/
public function setGlobalOptions(ConsoleCommandEvent $event)
{
/* @var Input $input */
$input = $event->getInput();
// TODO: We need a good strategy for managing global options.
// $simulate = $input->getOption('simulate');
}
示例9: setOutputWriter
public function setOutputWriter(ConsoleCommandEvent $event)
{
$command = $event->getCommand();
if (!$this->isMigrationCommand($command)) {
return;
}
$this->outputWriter->setConsoleOutput($event->getOutput());
}
示例10: registerMigrations
public function registerMigrations(ConsoleCommandEvent $event)
{
$command = $event->getCommand();
if (!$this->isMigrationCommand($command)) {
return;
}
$this->configuration->registerMigrationsFromDirectory($this->configuration->getMigrationsDirectory());
}
示例11: mergeDefinitions
private function mergeDefinitions(ConsoleCommandEvent $event)
{
$inputDefinition = $event->getCommand()->getApplication()->getDefinition();
$inputDefinition->addOption(new InputOption('log-memory', null, InputOption::VALUE_NONE, 'Output information about memory usage', null));
$inputDefinition->addOption(new InputOption('daemonize', null, InputOption::VALUE_NONE, 'Output information about memory usage', null));
$event->getCommand()->mergeApplicationDefinition();
return true;
}
示例12: onCronStart
/**
* @param ConsoleCommandEvent $event
*/
public function onCronStart(ConsoleCommandEvent $event)
{
if (!$this->isCronCommand($event->getCommand()->getName(), $event->getInput())) {
$this->skipped = true;
return;
}
$this->start = microtime(true);
}
示例13: onConsoleCommand
/**
* @param ConsoleCommandEvent $event
*/
public function onConsoleCommand(ConsoleCommandEvent $event)
{
$command = $event->getCommand();
if ($this->registry->isChainedCommand($command)) {
$event->disableCommand();
$event->getOutput()->writeln('<error>Chained command should not be executed directly</error>');
}
}
示例14: onCommandStart
public function onCommandStart(ConsoleCommandEvent $event)
{
$command = $event->getCommand();
if (!in_array($command->getName(), $this->listenedCommands)) {
return;
}
$commandSlug = preg_replace('/[^a-zA-Z0-9_.]/', '', $command->getName());
$this->watcher->start($commandSlug);
}
示例15: onConsoleCommand
public function onConsoleCommand(ConsoleCommandEvent $event)
{
$this->siteAccess->name = $event->getInput()->getParameterOption('--siteaccess', $this->defaultSiteAccessName);
$this->siteAccess->matchingType = 'cli';
if (!in_array($this->siteAccess->name, $this->siteAccessList)) {
throw new InvalidSiteAccessException($this->siteAccess->name, $this->siteAccessList, $this->siteAccess->matchingType);
}
$this->eventDispatcher->dispatch(MVCEvents::CONFIG_SCOPE_CHANGE, new ScopeChangeEvent($this->siteAccess));
}