1.5.0 - Performance Improvements & more!
What's Changed
🐛 Bug Fixes
- Fix analysis breaking for anonymous classes by @floriankraemer in #44
- Improved error handling for anonymous classes during AST parsing
- Added comprehensive test coverage for anonymous class scenarios
🎨 User Experience Improvements
- Hide cognitive metric details in console output by @floriankraemer in #43
- Added
showDetailedCognitiveMetricsconfiguration option to control detailed metric display - Improved console output readability by making detailed metrics optional
- Added
⚡ Performance Enhancements
- Significantly increase analysis performance by @floriankraemer in #46
- Introduced
CombinedMetricsVisitorto process all metrics in a single AST traversal - Eliminated multiple AST parsing passes, reducing analysis time substantially
- Optimized visitor pattern implementation across all metric collectors
- Introduced
🧪 Testing & Quality Assurance
-
Add comprehensive approval tests for console output by @floriankraemer in #47
- Implemented approval testing framework to detect unintended changes in console output
- Added test fixtures for various configuration scenarios
- Improved file collection and sorting consistency across platforms
-
Add PHPBench performance benchmarking by @floriankraemer in #45
- Integrated PHPBench for continuous performance monitoring
- Added comprehensive benchmarks for different code complexity scenarios
- Established baseline performance metrics for future optimization
🔧 Code Quality & Refactoring
- Refactor cognitive metrics handling and parser architecture
- Simplified cyclomatic complexity instantiation and data handling
- Enhanced type safety with improved type hints
- Removed unused methods and improved code maintainability
- Better separation of concerns in metrics collection
Full Changelog: 1.4.0...1.5.0
Key Highlights
- Major performance improvement through single-pass AST traversal
- Enhanced configurability with new output display options
- Robust testing with approval tests and performance benchmarks
- Better error handling for edge cases like anonymous classes
- Improved code quality through refactoring and type safety enhancements
This release represents a significant step forward in both performance and reliability, making the tool more efficient and easier to configure for different use cases.