Parser/Bot.php
public function parse()
    {
        $result = null;

        if ($this->preMatchOverall()) {
            if ($this->discardDetails) {
                $result = true;
            } else {
                foreach ($this->getRegexes() as $regex) {
                    $matches = $this->matchUserAgent($regex['regex']);
                    if ($matches) {
                        unset($regex['regex']);
                        $result = $regex;
                        break;
                    }
                }
            }
        }

        return $result;
    }
public function parse()
    {
        $result = null;

        if ($this->preMatchOverall()) {
            if ($this->discardDetails) {
                $result = true;
            } else {
                foreach ($this->getRegexes() as $regex) {
                    $matches = $this->matchUserAgent($regex['regex']);
                    if ($matches) {
                        unset($regex['regex']);
                        $result = $regex;
                        break;
                    }
                }
            }
        }

        return $result;
    }
public function parse ( ) { $ result = null ; if ( $ this -> preMatchOverall ( ) ) { if ( $ this -> discardDetails ) { $ result = true ; } else { foreach ( $ this -> getRegexes ( ) as $ regex ) { $ matches = $ this -> matchUserAgent ( $ regex [ 'regex' ] ) ; if ( $ matches ) { unset ( $ regex [ 'regex' ] ) ; $ result = $ regex ; break ; } } } } return $ result ; }
Parses the current UA and checks whether it contains bot information

@see bots.yml for list of detected bots

Step 1: Build a big regex containing all regexes and match UA against it
-> If no matches found: return
-> Otherwise:
Step 2: Walk through the list of regexes in bots.yml and try to match every one
-> Return the matched data

If $discardDetails is set to TRUE, the Step 2 will be skipped
$bot will be set to TRUE instead

NOTE: Doing the big match before matching every single regex speeds up the detection
Parses the current UA and checks whether it contains bot information