Skip to content

v2.0.0 Modernization

Latest

Choose a tag to compare

@cbschuld cbschuld released this 04 Sep 16:17
bf4be5f

Added

  • PSR-4 autoloading with cbschuld namespace
  • Return type declarations on key methods (setVersion, checkBrowserEdge, etc.)
  • compareVersion() method for PHP 8+ compatible version comparisons
  • Enhanced Edge browser detection (supports Edge/, Edg/, EdgA/, EdgiOS/ patterns)
  • Root-level Browser.php shim for non-Composer backward compatibility
  • GitHub Actions CI pipeline (replaces Travis CI)
  • Support metadata in composer.json
  • Comprehensive upgrade documentation (UPGRADING.md)

Changed

  • BREAKING: Minimum PHP version is now 8.0 (was 7.2)
  • BREAKING: Added return type declarations to key methods (may affect extenders)
  • BREAKING: Class is now namespaced as cbschuld\Browser
  • Updated PHPUnit to 9.6 for broad PHP 8.x compatibility
  • Updated phpunit.xml.dist to PHPUnit 9.6 schema
  • Fixed fgetcsv escape parameter for PHP 8.1+ compatibility
  • Removed composer.lock from repository (library best practice)

Removed

  • Support for PHP 7.x
  • Travis CI configuration (.travis.yml)
  • Composer branch alias

Migration

  • See UPGRADING.md for detailed migration instructions
  • Backward compatibility maintained via automatic class aliasing
  • Non-Composer users can still use direct includes

Breaking Changes

PHP Version Requirement

  • Minimum PHP version: 8.0+ (was 7.2+)
  • Reason: Enables modern PHP features and improved performance

Namespace Introduction

  • New namespace: cbschuld\Browser
  • Migration path: See usage examples below

Return Type Declarations

  • Added return type hints to protected methods
  • Impact: If you extend the Browser class and override protected methods, you'll need to add matching return types
  • Example: protected function checkBrowserEdge(): bool (was protected function checkBrowserEdge())