lithium\core\Environment::_detector()
Accessor method for Environment::$_detector
. If $_detector
is unset, returns the default
detector built into the class. For more information on setting and using $_detector
, see
the documentation for Environment::is()
. The _detector()
method is called at the
beginning of the application's life-cycle, when Environment::set()
is passed either an
instance of a Request
object, or the $_SERVER
or $_ENV
array. This object (or array)
is then passed onto $_detector
, which returns the correct environment.
Returns
objectReturns a callable object (anonymous function) which detects the application's current environment.
Source
protected static function _detector() {
return static::$_detector ?: function($request) {
$isLocal = in_array($request->env('SERVER_ADDR'), ['::1', '127.0.0.1']);
switch (true) {
case (isset($request->env)):
return $request->env;
case ($request->command == 'test'):
return 'test';
case ($request->env('PLATFORM') == 'CLI'):
return 'development';
case $request->url && (preg_match('/^\/test/', $request->url) && $isLocal):
return 'test';
case ($isLocal):
return 'development';
case $request->env('HTTP_HOST') && preg_match('/^test/', $request->env('HTTP_HOST')):
return 'test';
default:
return 'production';
}
};
}