1.9.1 - 2024-12-12
- Better compatibility with PHP 8.4
1.9.0 - 2024-12-01
- Compatibility with PHP 8.4
- Added
GACELA_CACHE_DIR
env variable to override where to place the cache files - Added
RELEASE.md
docs
1.8.1 - 2024-11-09
- Internal optimizations
1.8.0 - 2024-08-17
- Moved
./gacela
script tobin/
directory - Fixed disable event listeners
- Added
Gacela::addGlobal()
- Added
Gacela::overrideExistingResolvedClass()
- Deprecated
AbstractDependencyProvider
in favor ofAbstractProvider
1.7.1 - 2024-04-16
- Keep packages sorted in composer.json
- Added
ergebnis/composer-normalize
- Added
rector
1.7.0 - 2023-12-21
- Change min PHP support for
PHP>=8.1
1.6.0 - 2023-10-15
- Fixed combining event listeners from different
SetupGacela
objects - Removed
ConfigNotFoundException
- Simplify
FactoryResolverAwareTrait
- Refactor
SetupGacela
andFactoryResolver
1.5.0 - 2023-07-01
- Added command
gacela list:modules [--detailed|-d]
- Fixed Windows support
1.4.0 - 2023-05-20
- Added
Gacela::rootDir()
- Added
GacelaConfig::enableFileCache()
- Added plugins as callable
GacelaConfig::addPlugin(string|callable)
- Rename
addExtendConfig()
toextendGacelaConfig()
inGacelaConfig
- Removed deprecated
withPhpConfigDefault()
1.3.0 - 2023-05-08
- Deleted
PluginInterface
- A plugin can be any class that implements
__invoke()
- A plugin can be any class that implements
- Added
GacelaConfig::addExtendConfig()
- Remove the deprecated methods
setFileCacheEnabled()
&setFileCacheDirectory()
1.2.0 - 2023-04-29
- Unify
setFileCacheEnabled
andsetFileCacheDirectory
into one single method:setFileCache(bool $enabled, string $dir)
. Deprecated the former methods - Rename dependency; from
resolver
tocontainer
. - Moved the current
Container
logic to the decoupledcontainer
dependency - Add "plugins" to run right after the
Gacela::bootstrap()
- Deprecated
addMappingInterface()
in favor ofaddBinding()
1.1.1 - 2023-04-19
- Deprecate
withPhpConfigDefault()
in favor ofdefaultPhpConfig()
- Extract the dependency resolver logic into a different repo
gacela-project/resolver
1.1.0 - 2023-03-21
- Allow using static facade methods
- You can use
::getFactory()
from a static or non-static context
- You can use
- ResetInMemoryCache also from anonymous globals and factory containers
1.0.1 - 2023-03-12
- Normalise internal events'
toString()
- Bugfix Register only once specific events on bootstrap
1.0.0 - 2023-01-01
- Allow extending raw arrays as services
- The Locator cannot resolve any more interface classes only because of the
Interface
suffix in their name - Drop support for PHP 7.4
0.32.0 - 2022-11-24
- Froze a "Container service" after its first usage with
get()
- Added
Container::protect(service)
0.31.0 - 2022-11-15
- Added
Container::factory(service)
- Added
Container::extend(id, service)
- Added
GacelaConfig::extendService(id, service)
0.30.1 - 2022-11-09
- Fixed
DocBlockResolver
resolvableType - Fixed
DocBlockResolverAwareTrait
cache
0.30.0 - 2022-11-07
- Allow combine and override different
GacelaConfig
from project level - Added internal events for the
ClassResolver\Cache
scope - Fixed
PhpFileCache
bug
0.29.0 - 2022-11-02
- Added
GacelaConfig::registerSpecificListener(event, listener)
- Added
GacelaConfig::registerGenericListener(listener)
0.28.0 - 2022-10-27
- Add file cache for resolved classes
- Remove profiler, because it does the same as the file cache system under the hood
0.27.0 - 2022-10-12
- Read autoload-dev psr-4 namespaces for gacela make commands
- Cache default resolved gacela class
- Allow optional project namespace on class name finder rules
0.26.0 - 2022-10-01
- Added new feature: gacela file profiler (disabled by default)
- Removed gacela file cache. Instead, use InMemoryCache always
- Removed
gacela cache:clear
command
0.25.0 - 2022-09-18
- Removed deprecated
SetupGacelaInterface
fromgacela.php
- Allow using abstracts Factory and Config by default
- Create
gacela cache:clear
command - Process configFn from appRootDir if exists, and it wasn't defined on bootstrap
0.24.0 - 2022-07-23
- Change cache default directory to
.gacela/cache
- Added project namespaces
GacelaConfig::setProjectNamespaces(array)
to be able to resolve gacela classes with priorities
- Added gacela configuration for different environments
- Allow adding config key-values from GacelaConfig
GacelaConfig::addAppConfigKeyValue(string, mixed)
GacelaConfig::addAppConfigKeyValues( array<string, mixed> )
- When cache is disabled on bootstrap, Gacela won't generate
*.cache
files
0.23.1 - 2022-06-25
- Fix
setCacheDirectory()
with nested dir levels
0.23.0 - 2022-06-24
- Group gacela cache files inside a
cache/
directory - Allow enabling/disabling cache files from the project config files
- Added
setCacheDirectory()
toGacelaConfig
- Added
vendor/bin/gacela
script - Add
.editorconfig
&.gitattributes
files - Ignore
composer.lock
0.22.0 - 2022-06-10
- Added a (file) cache layer
- for class-names to their resolvable-type (in a file:
.gacela-class-names.cache
) - for custom-services to their resolvable-class (in a file:
.custom-services.cache
)
- for class-names to their resolvable-type (in a file:
- Delete unnecessary Backtrace for exceptions
- Rename resetCache() to setCacheEnabled() from
GacelaConfig
0.21.0 - 2022-05-29
- Allow only a
Closure(GacelaConfig):void
object to 2nd parameter type ofGacela::bootstrap()
- Add new key Gacela configuration key:
GacelaConfig::setResetCache(bool)
0.20.0 - 2022-05-27
- Add
GacelaConfig::withPhpConfigDefault()
- Allow gacela anon-classes using parent methods
- Define local pattern php config default
- Add
AbstractClassResolver::resetCache()
0.19.0 - 2022-05-19
- Removed bin/gacela util from this repo
- CodeGenerator moved to its own repo:
gacela-project/gacela-cli
- CodeGenerator moved to its own repo:
0.18.1 - 2022-05-15
- Bugfix SetupGacela using proper method from parent class
0.18.0 - 2022-05-14
- Removed default config path from config/*.php to empty
- Added allow gacela.php using a callable with GacelaConfig arg
- Moved namespace from Setup to Bootstrap (affecting SetupGacela)
- Deprecated Setup namespace in favor of Bootstrap
- Remove deprecated
globalServices()
method - Deprecate SetupGacelaInterface from gacela.php and
Gacela::bootstrap()
. Use callable(GacelaConfig) instead
0.17.2 - 2022-05-02
- Ensure GLOB_BRACE constant is defined for Alpine and Solaris OS
0.17.1 - 2022-05-02
- Removing illegal c-char from filename
0.17.0 - 2022-04-29
- Added DocBlockResolverAwareTrait
- Deprecated FacadeResolverAwareTrait in favor of DocBlockResolverAwareTrait
- Removed deprecated setup as array in
Gacela::bootstrap()
- Allow overriding Gacela resolvable Facade type
0.16.0 - 2022-04-14
- Combine gacela file and bootstrap setup
- Rename the concept of GlobalServices to ExternalServices
- Make the Facade accessible from module-internal sub-folders
- Allow to return an instance of SetupGacela on gacela.php
0.15.0 - 2022-03-26
- Updated ClassInfo improve performance adding cache
- Renamed GlobalServices to Setup
- Added SetupGacela to replace AbstractConfigGacela
- Added support for dark mode logo
0.14.0 - 2022-03-14
- Updated from protected to public the
getAppRootDir()
fromAbstractConfig
- Updated
AbstractConfigGacela
to use builders instead of returning arrays
0.13.0 - 2022-03-01
- Added allow defining a config reader as class-string too
- Moved the "config readers" next to their config item itself
- Performance improvement specially when using different config readers in the same project
- Added OverrideResolvableTypes feature
- Allow overriding Gacela resolvable types (Factory, Config, DependencyProvider)
- Removed deprecated methods
getApplicationRootDir()
&setApplicationRootDir()
from Config- Use
getAppRootDir()
&setAppRootDir()
instead
- Use
- Deprecated and removed
CustomService
feature. UseMappingInterfaces
feature instead- Why? Too much magic
0.12.0 - 2022-02-13
- Added
getAppRootDir()
to AbstractConfig - Added
APP_ENV
environment key, to define different config files on different environments - Added
'config-readers'
key in the globalServices andgacela.php
- Added
'custom-services-location'
key in the globalServices andgacela.php
- Define namespaces (relative to a module) where Gacela should check for custom services that will be auto-resolved
- Deprecated
getApplicationRootDir()
from Config. UsegetAppRootDir()
instead - Removed
EnvConfigReader
fromgacela-project/gacela
- If you want to read
.env
values, you should requiregacela-project/gacela-env-config-reader
- If you want to read
0.11.0 - 2022-01-18
- Deleted deprecated array config in
gacela.php
- Allow
null
as default config value - The globalServices are passed into
mappingInterfaces()
and not as constructor argument
0.10.0 - 2021-10-04
- Allow setup custom config from
Gacela::bootstrap()
directly
0.9.0 - 2021-08-27
- Allow return JsonSerializable objects in PHP config files
0.8.0 - 2021-08-16
- Updated
gacela.php
config file:- returning a simple array has been deprecated
- an anonymous function that creates an anonymous class that extends from AbstractConfigGacela should be used
- Remove deprecated
gacela.json
config file
0.7.0 - 2021-08-07
- Improve the flexibility from the ConfigReaders
- Deprecated
gacela.json
config file, in favor ofgacela.php
- Added 'mapping-interfaces' key to
gacela.php
- Added autowiring for Factory dependencies
0.6.0 - 2021-07-27
- Added
AbstractClassResolver::overrideExistingResolvedClass()
- Locator uses
AbstractClassResolver::getGlobalInstance()
before creating a new instance - Unify the cacheKey using
GlobalKey
0.5.0 - 2021-07-19
Config::setConfigReaders()
create a new config instance singleton- Added
AbstractClassResolver::addAnonymousGlobal()
you can now use anonymous classes - Added matrix for the GitHub CI for diff PHP versions (7.4,8.0), and diff OS (mac,linux,windows)
0.4.0 - 2021-07-10
- Allow multiple (and different) config files defined in
gacela.json
- Make extensible the Config Readers
0.3.0 - 2021-07-04
- Allow using config php and env files defined in
gacela.json
- Use long name by default in the generator code commands. Optional short names
0.2.0 - 2021-04-27
- Added CodeGenerator
- Refactoring Config reading all php files from config directory
0.1.0 - 2021-04-02
- Added Facade, Factory, Config and DependencyProvider basic functionality
- Provide documentation for each of these concepts with examples