You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
make:module --template=service [--with-tests]: scaffolds a module that runs out of the box — four pillars plus a Domain service, optionally with a GacelaTestCase-based facade test
CrossModuleViaFacadeRule: optional sharedNamespaces allowlist for shared kernels
Changed
Bumped gacela-project/container to ^0.10.0. It fixes transient resolutions sharing child instances; uncached construction gets slower (sub-microsecond per resolve), while Gacela's steady-state paths are unaffected because resolved classes are instance-cached
Event dispatch is zero-cost when nothing listens (~20% faster warm resolves). BC note: custom EventDispatcherInterface implementations must add hasListeners()
Fixed
APP_ENV is read from a single source for both the env-suffixed config files and the merged-config cache key, so they can no longer disagree mid-process
ConfigLoader's read cache is keyed by reader and path: the same file under two readers no longer shares a cache entry
Gacela::resetCache() also clears the glob cache, so config files added or removed on disk are seen by the next bootstrap in the same process
ProviderRegisteredEvent no longer fires twice for a modern AbstractProvider
Config::getEventDispatcher() returns a no-op dispatcher before bootstrap instead of throwing
Re-bootstrapping rebuilds the event dispatcher; listeners from a previous bootstrap no longer leak
The merged-config cache filename embeds an app-root hash: apps sharing a cache directory no longer read each other's config (old files are ignored and removed by cache:clear)
Documentation
New docs/events.md (dispatch model, event catalog, listener cookbook) and docs/testing.md (GacelaTestCase, ContainerFixture)
Module boundaries in docs/static-analysis.md, config precedence in docs/getting-started.md, scalar bindings and the #[Singleton]/#[Factory] attributes in docs/container-configuration.md