Skip to content

Releases: gacela-project/gacela

1.12.0

09 Nov 20:56
60c49f8

Choose a tag to compare

TL;DR: Introduce the #[ServiceMap] attribute, add CLI commands for production optimization, and include factory service registration. Performance improvements and enhanced caching in the renamed ServiceResolver. 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 resolution
  • ServiceResolverAwareTrait: 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 performance
  • validate: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.neon and psalm-gacela.xml with suppressions for dynamic patterns
  • Better integration with static analysis tools for projects using Gacela

🔧 Improvements

  • Renamed DocBlockResolverServiceResolver: Better reflects its actual purpose
  • Enhanced Error Messages: More actionable suggestions and examples
  • Documentation improvements for container configuration

📚 Documentation

  • New docs/container-configuration.md with factory service examples
  • Updated static analysis configuration guides

🔄 Migration Notes

  • The #[ServiceMap] attribute is now the recommended approach (DocBlock still supported)
  • ServiceResolverAwareTrait will replace DocBlockResolverAwareTrait in future versions

🫂 Contributors

📦 What's Changed in This Release

Full changelog: 1.11.0...1.12.0

1.11.0

12 Oct 16:35
87d099d

Choose a tag to compare

What's Changed

🥇 Improvements

  • Dropped static Facade magic methods
    • use $facade->getFactory() directly
  • Added phpstan-gacela.neon
    • reusable PHPStan rules enforcing Gacela naming conventions (Facade, Factory, Provider, Config)
  • Improved PHPStan generic type support
    • Replaced @method annotations with @extends for better type inference
  • Improved SetupGacela structure
    • Extracted PropertyChangeTracker and SetupGacelaProperties into dedicated classes
  • 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

@Chemaclass @JesusValeraDev

Full Changelog: 1.10.0...1.11.0

1.10.0

01 Aug 22:54
7f8a747

Choose a tag to compare

What's Changed

Full Changelog: 1.9.1...1.10.0

1.9.1

12 Dec 19:21
c2e757b

Choose a tag to compare

What's Changed

🌾 Miscellaneous

  • Better compatibility with PHP 8.4

Full Changelog: 1.9.0...1.9.1

1.9.0

01 Dec 11:47
a042a1b

Choose a tag to compare

What's Changed

🥇 New features

🌾 Miscellaneous

  • Compatibility with PHP 8.4
  • Added RELEASE.md docs

Full Changelog: 1.8.1...1.9.0

1.8.1

09 Nov 11:32
79cea9f

Choose a tag to compare

What's Changed

🌾 Miscellaneous

  • Internal improvements

Full Changelog: 1.8.0...1.8.1

1.8.0

17 Aug 20:51
1a17f86

Choose a tag to compare

What's Changed

🐛 Bugfix

🥇 New features

🌾 Miscellaneous

Full Changelog: 1.7.1...1.8.0

1.7.1

16 Apr 20:42

Choose a tag to compare

What's Changed

Full Changelog: 1.7.0...1.7.1

1.7.0

21 Dec 20:40

Choose a tag to compare

Change min PHP support for PHP>=8.1

Full Changelog: 1.6.0...1.7.0

1.6.0

21 Oct 17:06

Choose a tag to compare

What's Changed

Full Changelog: 1.5.0...1.6.0