# Changelog ## 3.4.2 - Update uap-core ## 3.4.1 - Fix a regex delimiter issue with uap-core - Bundle regex.php with uap-php ## 3.4.0 - ADD: device Parsing with brand model and case insensitive testing - Use `peer_name` instead of `CN_match` for PHP >=5.6 - Advertise Gitter chat for support requests - Include uap-core as a git submodule ## 3.3.1 - PSR-4 ready - Self repository, less useless files ## 3.3.0 - Use composer for dependency management - Introduce namespaces - Removing legacy library dependencies - Use PHPUnit for testing - Make all tests pass, fix all the remaining bugs - Introduce specific result objects - Comply with PSR-X coding standards: * `UAParser` class is now `UAParser\Parser` * Typed result objects: `Parser::parse()` returns `UAParser\Result\Client`, `Client::$os` is a `UAParser\Result\OperatingSystem` and `Client::$device` is a `UAParser\Result\Device` * `toString()` and `toVersion()` are now methods * Properties now use camelCase, not underscore_case. - Use Travis for CI - Update README - Port command line tool to Symfony CLI - Secure updating: SSL certificate verification, hashing, try to do atomic updates - Restore fetching YAML file only (without generating JSON) ## 2.1.1 - FIX: making sure patch minor is being populated correctly when showing a mismatch ## 2.1.0 - ADD: support for custom regexes.json files (via @pravindahal) - FIX: formerly private vars/functions are now protected (via @pravindahal) - FIX: command line tool gets 'pretty' option for PHP 5.4 users (via @skyzyx) - FIX: refactored the regexes.yaml test suite - FIX: now check to see if allow_url_fopen is set to 'On' before trying to download the YAML file from the command line - THX: thanks to @pravindahal and @skyzyx for the pull requests ## 2.0.1 - FIX: renamed uaParser, osParser, & deviceParser to uaParse, osParse, & deviceParse to address a bug with uaParser being recognized as the contruct function for the overall lib - FIX: updated the test lib so that device failures are properly formatted ## 2.0.0 - Summary: * the `UAParser` class is now dynamic * properties are nested _(e.g. $result->family is now $result->ua->family)_ * a user agent string is now required when using `parse()`. the auto-magical "use the server provided UA" is no longer supported. * `uaParse()`, `osParse()`, and `deviceParse()` are public and can be used to just return those select bits for a given user agent string. * the `is*` boolean properties _(e.g. isMobile)_ have been dropped. they now exist as part of the `ua-classifier` project. - ADD: toString() converts the version bits and family into a simple string - ADD: toVersionString() converts the version bits into a simple string - ADD: toFullString() combines the UA and OS family and version bits - ADD: "convert" flag for uaparser-cli.php - ADD: "pull & save just regexes.yaml" flag for uaparser-cli.php - FIX: library is now a dynamic class - FIX: attributes are now nested & populated like the other ua-parser libraries (e.g. $result->family is now $result->ua->family) - FIX: uaParser(), osParser(), and deviceParser() are now public functions - FIX: saves regexes.yaml as JSON for better performance - FIX: removed the __DIR__ "fix" - FIX: Apache log parsing now returns results when UA or OS families are set to "Other" and the device is listed as a smartphone or generic feature phone - FIX: all tabs are now spaces - FIX: a UA is now run against all three parsers - FIX: renamed $debug var to $log to better reflect what it does - DEL: is* boolean attributes (e.g. isMobile) have been removed - DEL: will no longer auto-parse $_SERVER['HTTP_USER_AGENT'] if available - DEL: tests no longer run against pgts_browser_list.yaml - THX: thanks to @rjd22 for the dynamic class code/fix ## 1.5.0 - ADD: command line interface is now in its own file (via @Synchro) - ADD: command line utility now supports parsing an Apache log file & recording the results - ADD: command line utility can now parse a supplied user-agent string and push out a simple list or JSON - ADD: test suite that uses the ua-parser project's test resources - FIX: numerous comment & spacing fixes (via @Synchro & @Krinkle) - FIX: remove PHP4 version of spyc (via @Synchro) - FIX: remove .svn dirs in spyc (via @lopezdonaque) - FIX: notes that the PHP 5.2 fix really was for 5.1 (via @Synchro) (knew this, i was lazy) - FIX: lib now returns an object no matter what. now matches other ua-parser libs (via @Krinkle) - FIX: checks that $_SERVER attr is set before including it. should be better for command line use. - FIX: family attr now properly set in an edge case - FIX: if regexes.yaml picks up bad slashes the PHP lib will account for it (e.g. GoogleTV regex) - THX: thanks to @Krinkle and @Synchro for the numerous fixes ## 1.4.5 - FIX: an embarrassing debug print survived the last edit - THX: thanks to @memakeit for dropping the bug report ## 1.4.4 - FIX: made sure that the regex file is only loaded once if running the library multiple times. performance boost. - FIX: added support for identifying various game devices as mobile devices - THX: thanks to @rjd22 for pointing out the perf issue ## 1.4.3 - FIX: added support for patch & family attributes to sort of match the other libraries ## 1.4.2 - FIX: notice if regexes.yaml is missing parens (e.g. match $1) for device & os names ## 1.4.1 - FIX: notice when using UAParser from the command line ## 1.4.0 - ADD: silent mode for the UA::get() method - ADD: nobackup mode for the UA::get() method - ADD: example of how to do a redirect with ua-parser-php - The following were changes to regexes.yaml: * ADD: support for Google Earth browser * ADD: another regex for Firefox Mobile * ADD: support for Firefox Alpha builds * ADD: support for Sogou Explorer * ADD: support for the Raven for Mac browser * ADD: support for WebKit Nightly builds (though slightly pointless) * FIX: better pattern matching for the Pale Moon browser ## 1.3.2 - FIX: addressed false "tablet" classification for opera mobile & mini on android - The following were changes to regexes.yaml: * ADD: support for Tizen Browser (aka SLP Browser) from Samsung * FIX: support for a new look Polaris 8.0 user agent string * FIX: modified where the Epiphany Browser check happens ## 1.3.1 - FIX: now doing some sanity cleaning on the user agent strings - FIX: added a smarter default if the user agent isn't recognized at all ## 1.3.0 - FIX: now points to Tobie's ua-parser project for the latest greatest YAML file - FIX: YAML file is now standardized as regexes.yaml instead of user_agents_regex.yaml - FIX: minor NOTICE issues resolved for very select UAs ## 1.2.2 - The following were changes to user_agents_regex.yaml: * ADD: support for UC Browser ## 1.2.1 - The following were changes to user_agents_regex.yaml: * ADD: support for android 4 user agents that have a dash in them ## 1.2.0 - FIX: should be compatible with PHP 5.2 - FIX: addressed STRICT mode errors - FIX: addressed NOTICE for a missing variable - FIX: if isTablet is set to true then isMobile is set to false (mobile to me means phone) - THX: Thanks to Mike Bond of WVU Libraries for pointing out the 5.2 incompatibility ## 1.1.0 - FIX: a number of fixes from bryan shelton - The following were changes to user_agents_regex.yaml: * ADD: support for Chrome Mobile ## 1.0.0 - just because i don't expect to update this anytime soon and ppl report it's working ## 0.3.1 - FIX: swapped nil for null in parse() - FIX: smarter/saner defaults - FIX: now using isset() for family_replacement - THX: thanks to bryan shelton for these fixes ## 0.3.0 - ADD: can now supply a specific UA to be checked - ADD: if the UA contains 'tablet' isTablet is marked true - ADD: for certain mobile OSs they report a desktop browser. marking them mobile now. - FIX: tablet listing should now be better - FIX: the list of mobile browsers was updated - FIX: made sure that certain checks won't fail as "false" if a version number was a 0 - FIX: for the device check, if it returns spider as a result it no longer marks it as mobile - FIX: added more mobile browsers to that specific check - The following were changes to user_agents_regex.yaml: * ADD: symphony, minimo, teleca, semc, up.browser, bunjaloo, jasmine, & brew browsers supported * ADD: windows mobile 6.5 os support * ADD: amoi, asus, bird, dell, docomo, huawei, i-mate, kyocera, lenovo, lg, microsoft kind, motorola, philips, samsung, softbank, & sony ericsson device checks * FIX: mobile firefox, opera mobile & mini, obigo, polaris, nokiabrowser, ie mobile, android, & mobile safari browser checks * FIX: iOS support * FIX: htc, android, palm/hp, kindle, ios, generic feature phones & spider device checks ## 0.2.0 - ADD: added isMobile support - ADD: added isTablet support - ADD: added isComputer support - ADD: added isSpider support ## 0.1.0 - The following were changes to user_agents_regex.yaml: * expanded support for Symbia & Nokia Devices, * cleaned up some slashies, * added Mobile Safari as the family replacement for iOS devices, * better support for longer HTC device names * added feature phones to the device check * added generic smartphones to the device check * added AvantGo to the ua check * tweaked a lot of the nokia checks * added kindle support to the device section * added a generic catch for android devices. * added support for blackberry devices * changed the blackberry family to 'blackberry webkit' when it's a webkit browser