Added
- PSR-4 autoloading with
cbschuldnamespace - 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
Browserclass and override protected methods, you'll need to add matching return types - Example:
protected function checkBrowserEdge(): bool(wasprotected function checkBrowserEdge())