示例#1
0
 /**
  * @inheritdoc
  */
 public function init()
 {
     parent::init();
     $this->input = $this->command->input;
     $this->output = $this->command->output;
 }
示例#2
0
 /**
  * @param string $event
  * @param TaskEvent $Event
  * @return bool
  */
 private function dispatch($event, TaskEvent $Event)
 {
     $disable_events = (string) $this->input->getOption('disable-events');
     if (in_array($disable_events, ['yes', 'force', 'always', 'true', '1'], true)) {
         return true;
     }
     if ($this->output->isVeryVerbose()) {
         $this->log(sprintf('<log> LOG </log> Dispatch event %s', $event), $Event->getIndent());
     }
     Component::getEventDispatcher()->dispatch($event, $Event);
     if ($Event->isPropagationStopped()) {
         $this->log(sprintf('<error>Event %s: Propagation stopped.</error>', $event), $Event->getIndent());
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * @param array $config
  * @return array
  */
 private function expandCompositeTasks(array $config)
 {
     if (!empty($config)) {
         foreach ($config as $task_name => $conf) {
             if (is_array($conf) && isset($conf['.task']) && !empty($conf['.task'])) {
                 $className = is_array($conf['.task']) ? $conf['.task']['class'] : $conf['.task'];
                 $params = is_array($conf['.task']) ? $conf['.task'] : [];
                 unset($params['class']);
                 $params['command'] = $this->command;
                 /** @var AbstractCompositeTask $Task */
                 $Task = Component::createObject($className, $params);
                 if ($Task instanceof AbstractCompositeTask) {
                     $tasks = $Task->tasks();
                     if (!empty($tasks)) {
                         $config[$task_name] = array_merge($conf, $tasks);
                     }
                 }
             }
         }
     }
     return $config;
 }