Releases: gacela-project/gacela
Releases · gacela-project/gacela
1.12.0
TL;DR: Introduce the
#[ServiceMap]attribute, add CLI commands for production optimization, and include factory service registration. Performance improvements and enhanced caching in the renamedServiceResolver. Static analysis tools now offer enhanced support, including the ability to suppress specific warnings.
✨ New Features
Service Resolution Improvements
#[ServiceMap]Attribute: New preferred method for service binding, replacing DocBlock-based resolutionServiceResolverAwareTrait: Enhanced caching and performance improvements- Factory Services: Added
GacelaConfig::addFactory()to register factory services that create new instances on each resolution
CLI Commands
cache:warm: Pre-resolve module classes for optimal production performancevalidate:config: Validate Gacela configuration for errors and best practices
Performance Enhancements
- Opcache Preload Script: 20-30% performance boost in production environments
- Internal caching improvements in ServiceResolver
Static Analysis Support
- PHPStan & Psalm Suppressions: Added
phpstan-gacela.neonandpsalm-gacela.xmlwith suppressions for dynamic patterns - Better integration with static analysis tools for projects using Gacela
🔧 Improvements
- Renamed
DocBlockResolver→ServiceResolver: Better reflects its actual purpose - Enhanced Error Messages: More actionable suggestions and examples
- Documentation improvements for container configuration
📚 Documentation
- New
docs/container-configuration.mdwith factory service examples - Updated static analysis configuration guides
🔄 Migration Notes
- The
#[ServiceMap]attribute is now the recommended approach (DocBlock still supported) ServiceResolverAwareTraitwill replaceDocBlockResolverAwareTraitin future versions
🫂 Contributors
📦 What's Changed in This Release
Full changelog: 1.11.0...1.12.0
1.11.0
What's Changed
🥇 Improvements
- Dropped static Facade magic methods
- use
$facade->getFactory()directly
- use
- Added
phpstan-gacela.neon- reusable PHPStan rules enforcing Gacela naming conventions (Facade, Factory, Provider, Config)
- Improved PHPStan generic type support
- Replaced
@methodannotations with@extendsfor better type inference
- Replaced
- Improved
SetupGacelastructure- Extracted
PropertyChangeTrackerandSetupGacelaPropertiesinto dedicated classes
- Extracted
- Improved config loader performance
🌾 Miscellaneous
- Added PHPStan checks to test code for stricter code quality
- Fixed flaky tests and improved stability of type-related logic
- Enabled mutation testing on CI
- CI now runs tests on PHP 8.4
👥 Contributors
Full Changelog: 1.10.0...1.11.0
1.10.0
What's Changed
- Improve internal addGlobal by @Chemaclass in #324
- install bashunit and test pre-commit hook by @Chemaclass in #307
- Add internal cache on PathFinder by @Chemaclass in #328
- Add cache to GlobalKey by @Chemaclass in #329
- Fix default cache dir by @Chemaclass in #331
- Add singleton to Factory by @Chemaclass in #332
Full Changelog: 1.9.1...1.10.0
1.9.1
1.9.0
What's Changed
🥇 New features
- Added
GACELA_CACHE_DIRas env variable to override cache dir by @Chemaclass in #321 #322
🌾 Miscellaneous
- Compatibility with PHP 8.4
- Added
RELEASE.mddocs
Full Changelog: 1.8.1...1.9.0
1.8.1
1.8.0
What's Changed
🐛 Bugfix
- Fix disable event listeners by @Chemaclass in #315
- Fix flacky tests on feature static facade by @Chemaclass in #316
🥇 New features
- Add
AbstractProviderby @Chemaclass in #319 - Add
Gacela::addGlobal()by @Chemaclass in #318 - Add
Gacela::overrideExistingResolvedClass()by @Chemaclass in #318
🌾 Miscellaneous
- Move
./gacelatobin/by @Chemaclass in #312 - Install PHPStan strict rules by @Chemaclass in #313
- Add more rules to Rector by @JesusValera in #317
Full Changelog: 1.7.1...1.8.0
1.7.1
What's Changed
- Enhancement: Keep packages sorted in
composer.jsonby @localheinz in #309 - Add rector by @Chemaclass in #308
- Enhancement: Require and use
ergebnis/composer-normalizeby @localheinz in #310 - Test file content generator with short name by @Chemaclass in #311
Full Changelog: 1.7.0...1.7.1
1.7.0
Change min PHP support for PHP>=8.1
Full Changelog: 1.6.0...1.7.0
1.6.0
What's Changed
- Refactor FactoryResolver by @Chemaclass in #299
- Remove ConfigNotFoundException by @Chemaclass in #300
- Add tests for DocBlockServiceNotFoundException by @Chemaclass in #301
- Simplify FactoryResolverAwareTrait by @Chemaclass in #303
- Refactor SetupGacela by @Chemaclass in #304
- Create a DTO from GacelaConfig by @Chemaclass in #305
- Move git-hooks by @Chemaclass in #306
Full Changelog: 1.5.0...1.6.0