Example #1
0
 /**
  * @param SegmentInterface $segment
  * @param array            $attributes
  */
 public function onTaskGroupBegin($segment, $attributes)
 {
     $payload_alias = 'parsley.payload';
     if (!$this->container->isAlias($payload_alias) && !$this->container->bound($payload_alias)) {
         // if we have no payload it means that no group can be formed and grouped tasks should be scheduled as standalone
         return;
     }
     /** @var Payload $payload */
     $payload = $this->container->make($payload_alias);
     // if we have group request from other than current grouped one, then switch context to it
     if ($this->hasGroup($payload) && $this->getGroupName($payload) == $segment->getName()) {
         $group_id = $this->getGroupId($payload);
         $group = $this->getGroupName($payload);
         $attributes = is_null($attributes) ? $payload->getAttributes() : $attributes;
     } else {
         $group_id = $payload->getId();
         $group = $payload->getName();
         $attributes = (array) $attributes;
     }
     $this->groups[] = [$group, $group_id, $attributes];
 }
Example #2
0
 /**
  * @param \Parsley\Plugins\SegmentInterface $plugin
  */
 public function registerPlugin($plugin)
 {
     if ($this->isPluginRegistered($plugin->getName())) {
         return;
     }
     // TODO: add plugins dependencies (check, conflicts, register and, maybe, deregister or replace)
     $this->fireSegmentEvent('plugin.register: ' . $plugin->getName(), [$plugin]);
     $plugin->subscribe($this->container['events']);
     $this->plugins[$plugin->getName()] = $plugin;
     $this->fireSegmentEvent('plugin.registered: ' . $plugin->getName(), [$plugin]);
 }