public function addSource($group, SourceIteratorInterface $source, array $types = [])
    {
        if (!isset($this->sources[$group])) {
            $this->sources[$group] = new \stdClass();

            $this->sources[$group]->sources = new ChainSourceIterator();
            $this->sources[$group]->types = [];
        }

        $this->sources[$group]->sources->addSource($source);

        if ($types) {
            $this->sources[$group]->types += array_diff($types, $this->sources[$group]->types);
        }
    }
public function addSource($group, SourceIteratorInterface $source, array $types = [])
    {
        if (!isset($this->sources[$group])) {
            $this->sources[$group] = new \stdClass();

            $this->sources[$group]->sources = new ChainSourceIterator();
            $this->sources[$group]->types = [];
        }

        $this->sources[$group]->sources->addSource($source);

        if ($types) {
            $this->sources[$group]->types += array_diff($types, $this->sources[$group]->types);
        }
    }
public function addSource ( $ group , SourceIteratorInterface $ source , array $ types = [ ] ) { if ( ! isset ( $ this -> sources [ $ group ] ) ) { $ this -> sources [ $ group ] = new \ stdClass ( ) ; $ this -> sources [ $ group ] -> sources = new ChainSourceIterator ( ) ; $ this -> sources [ $ group ] -> types = [ ] ; } $ this -> sources [ $ group ] -> sources -> addSource ( $ source ) ; if ( $ types ) { $ this -> sources [ $ group ] -> types += array_diff ( $ types , $ this -> sources [ $ group ] -> types ) ; } }
Adding source with his group.

@param string                  $group
@param SourceIteratorInterface $source
@param array                   $types
Adding source with his group .