Skip to content

2.1.0

Latest

Choose a tag to compare

@Chemaclass Chemaclass released this 09 Aug 07:23
· 8 commits to main since this release
2.1.0
f635756

Added

  • Run the Gacela architecture rules under Psalm too, each as its own suppressible issue type
  • Type getProvidedDependency(Foo::class) under Psalm, matching the PHPStan extension
  • Report cross-module calls on injected dependencies, which name no class at the call site
  • Show the correction next to every rule finding, not only the complaint

Changed

  • Resolve graph imports through a name index instead of comparing every import to every module
  • Prune vendor, node_modules and hidden directories before descending in module discovery
  • Exit non-zero from cache:warm when a warmup fails, so a broken deploy is not reported green

Removed

  • Drop the abandoned gacela-project/phpstan-extension suggestion; its rule is now built in

Fixed

  • Never tell an interface, trait or enum to extend a pillar, which PHP does not allow
  • Resolve imported class names the way each host does; under Psalm a used class matched no module
  • Strip only the matched psr-4 prefix in make:module/make:file, and accept list targets
  • Let bin/gacela run from any subdirectory, bootstrapping with the project root
  • Discover facades that extend AbstractFacade indirectly, not only direct children
  • Parse graph imports with the tokenizer: grouped, multiline, aliased and use function/use const
  • Check the merged configuration cache against its sources in doctor
  • Validate config without constructing services, so validate:config has no side effects
  • Treat ttl: 0 as no expiry in InMemoryCacheStorage, matching FileCache
  • Inherit app-wide resolution hooks in module scopes, for get(), getOrFail() and make()
  • Record nested and recursive profiler spans, and drop in-flight ones on disable()
  • Preserve duplicate module health checks and aggregate them to the worst reported level
  • Restore config values, app root and cache dir in ContainerFixture::restoreContainerState()