protected function driverMatcher(/*# string */ $tag)/*# : array */
    {
        $matched = [];
        foreach ($this->drivers as $id => $driver) {
            // disconnected or tag not match
            if (!$driver->ping() ||
                '' !== $tag &&
                (
                    !$driver instanceof TaggableInterface ||
                    !$driver->hasTag($tag)
                )
            ) {
                continue;
            }

            // weight factor
            $f = $this->factors[$id];
            for ($i = 0; $i < $f; ++$i) {
                $matched[] = $id;
            }
        }
        return $matched;
    }
protected function driverMatcher(/*# string */ $tag)/*# : array */
    {
        $matched = [];
        foreach ($this->drivers as $id => $driver) {
            // disconnected or tag not match
            if (!$driver->ping() ||
                '' !== $tag &&
                (
                    !$driver instanceof TaggableInterface ||
                    !$driver->hasTag($tag)
                )
            ) {
                continue;
            }

            // weight factor
            $f = $this->factors[$id];
            for ($i = 0; $i < $f; ++$i) {
                $matched[] = $id;
            }
        }
        return $matched;
    }
protected function driverMatcher ( /*# string */ $ tag ) /*# : array */ { $ matched = [ ] ; foreach ( $ this -> drivers as $ id => $ driver ) { // disconnected or tag not match
 if ( ! $ driver -> ping ( ) || '' !== $ tag && ( ! $ driver instanceof TaggableInterface || ! $ driver -> hasTag ( $ tag ) ) ) { continue ; } // weight factor
 $ f = $ this -> factors [ $ id ] ; for ( $ i = 0 ; $ i < $ f ; ++ $ i ) { $ matched [ ] = $ id ; } } return $ matched ; }
Driver tag matcher

@param  string $tag tag to match
@return array
@access protected
Driver tag matcher