function detect($name) { switch ($name) { case 'environment': if ($this->detect('console')) { return NEnvironment::CONSOLE; } else { return NEnvironment::getMode('production') ? NEnvironment::PRODUCTION : NEnvironment::DEVELOPMENT; } case 'production': if (PHP_SAPI === 'cli') { return FALSE; } elseif (isset($_SERVER['SERVER_ADDR']) || isset($_SERVER['LOCAL_ADDR'])) { $addrs = array(); if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $addrs = preg_split('#,\\s*#', $_SERVER['HTTP_X_FORWARDED_FOR']); } if (isset($_SERVER['REMOTE_ADDR'])) { $addrs[] = $_SERVER['REMOTE_ADDR']; } $addrs[] = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR']; foreach ($addrs as $addr) { $oct = explode('.', $addr); if ($addr !== '::1' && (count($oct) !== 4 || $oct[0] !== '10' && $oct[0] !== '127' && ($oct[0] !== '172' || $oct[1] < 16 || $oct[1] > 31) && ($oct[0] !== '169' || $oct[1] !== '254') && ($oct[0] !== '192' || $oct[1] !== '168'))) { return TRUE; } } return FALSE; } else { return TRUE; } case 'console': return PHP_SAPI === 'cli'; default: return NULL; } }
function detect($name) { switch ($name) { case 'environment': if ($this->detect('console')) { return NEnvironment::CONSOLE; } else { return NEnvironment::getMode('production') ? NEnvironment::PRODUCTION : NEnvironment::DEVELOPMENT; } case 'production': if (PHP_SAPI === 'cli') { return FALSE; } elseif (isset($_SERVER['SERVER_ADDR']) || isset($_SERVER['LOCAL_ADDR'])) { $addr = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR']; $oct = explode('.', $addr); return $addr !== '::1' && (count($oct) !== 4 || $oct[0] !== '10' && $oct[0] !== '127' && ($oct[0] !== '172' || $oct[1] < 16 || $oct[1] > 31) && ($oct[0] !== '169' || $oct[1] !== '254') && ($oct[0] !== '192' || $oct[1] !== '168')); } else { return TRUE; } case 'console': return PHP_SAPI === 'cli'; default: return NULL; } }