lithium\action\Request::detect()
Creates a detector used with Request::is()
. A detector is a boolean check that is
created to determine something about a request.
A detector check can be either an exact string match or a regular expression match against a
header or environment variable. A detector check can also be a closure that accepts the
Request
object instance as a parameter.
For example, to detect whether a request is from an iPhone, you can do the following:
Parameters
-
string
$flag
The name of the detector check. Used in subsequent calls to
Request::is()
. -
mixed
$detector
Detectors can be specified in four different ways:
- The name of an HTTP header or environment variable. If a string, calling the detector will check that the header or environment variable exists and is set to a non-empty value.
- A two-element array containing a header/environment variable name, and a value to match against. The second element of the array must be an exact match to the header or variable value.
- A two-element array containing a header/environment variable name, and a regular expression that matches against the value, as in the example above.
- A closure which accepts an instance of the
Request
object and returns a boolean value.
Returns
voidSource
public function detect($flag, $detector = null) {
if (is_array($flag)) {
$this->_detectors = $flag + $this->_detectors;
} else {
$this->_detectors[$flag] = $detector;
}
}