Environment object help us get browser and server information.
Get Environment Object
// Get from Application
$env = $app->environment;
// Get from Ioc
$env = \Windwalker\Ioc::getEnvironment();
// Get from container
$env = $this->container->get('environment');
Environment contains two objects, Browser
to get browser information, and Platform
to get server information.
The Platform Object
Get platform object:
$platform = $env->platform;
// OR
$platform = $app->platform;
Detect Running Environment
$platform->isWeb();
$platform->isCli();
Same as:
use Windwalker\Environment\PhpHelper;
PhpHelper:isWeb();
PhpHelper::isCli();
Detect System OS
Get server OS information. The getOS()
return first 3 letters from getUname()
. The Uname is same as PHP_OS
.
(List of PHP_OS
)
$platform->getOS(); // WIN, UNI, LIN, DAR ... etc.
$platform->getUname(); // PHP_OS
$platform->isWin();
$platform->isLinux();
$platform->isUnix();
Get System Path
$platform->getWorkingDirectory();
$platform->getRoot();
$platform->getEntry();
$platform->getServerPublicRoot();
$platform->getRequestUri();
getWorkingDirectory()
If in Web environment, this method return running script directory.
If in CLI environment, this method return current terminal working dir(same as pwd
command).
getRoot([$full = true]
)
Get running script root directory.
Set first argument to false
, will return relative path from DocumentRoot in Web,
or return relative path from working dir in CLI.
getEntry([$full = true]
)
Get running script file name.
Set first argument to false
, will return relative path from DocumentRoot in Web,
or return relative path from working dir in CLI.
getServerPublicRoot()
Return the Http server DocumentRoot, same as $_SERVER['DOCUMENT_ROOT']
.
getRequestUri([$withParams = true]
)
Call this method will return the URI path as $_SERVER['REQUEST_URI']
with Http queries.
/path/foo/?bar=baz
Set first argument to false
will return request path without params, same as $_SERVER['PHP_SELF']
.
/path/foo/
Get Request Information
$platform->getHost();
$platform->getScheme();
$platform->getPort();
The PhpHelper
PhpHelper provides some useful methods to know about our PHP status.
Check PHP Running Environment
PhpHelper::isWeb();
PhpHelper::isCli();
PhpHelper::isHHVM();
PhpHelper::isPHP();
PhpHelper::isEmbed();
Get PHP Version
If is PHP, return PHP_VERSION
. If is HHVM, return HHVM_VERSION
.
PhpHelper::getVersion()
Set Debug Mode
setStrict()
will set error_reporting()
to -1
.
setMuted()
will set error_reporting()
to 0
.
PhpHelper::setStrict();
PhpHelper::setMuted();
Check Extensions
PhpHelper::hasXdebug();
PhpHelper::hasPcntl();
PhpHelper::hasCurl();
PhpHelper::hasMcrypt();
The Browser Object
Get browser object:
$browser = $env->browser;
// OR
$browser = $app->browser;
Detect Browser
// Check is IE
$browser->getBrowser() == Browser::IE;
Available Browser Detection
- IE
- EDGE
- FIREFOX
- CHROME
- SAFARI
- OPERA
- ANDROID_TABLET
- VIVALDI
Detect Browser Version
$version = $browser->getBrowserVersion();
// Check version
$version >= 11;
Detect Browser Engine
$engine = $browser->getEngine();
// Check engine
$engine == Browser::ENGINE_WEBKIT
Available Engines
- ENGINE_TRIDENT
- ENGINE_EDGE_HTML
- ENGINE_WEBKIT
- ENGINE_GECKO
- ENGINE_PRESTO
- ENGINE_KHTML
- ENGINE_AMAYA
Detect User's OS or Device
$device = $browser->getDevice();
// Check platform
$device == Browser::DEVICE_ANDROID
Available Platforms
- DEVICE_WINDOWS
- DEVICE_WINDOWS_PHONE
- DEVICE_WINDOWS_CE
- DEVICE_IPHONE
- DEVICE_IPAD
- DEVICE_IPOD
- DEVICE_MAC
- DEVICE_BLACKBERRY
- DEVICE_ANDROID
- DEVICE_LINUX
Other Detection
$browser->isRobot();
$browser->isMobile();
$browser->getLanguages();
$browser->getEncodings();
$browser->isSSLConnection();
$browser->getUserAgent();
If you found a typo or error, please help us improve this document.