Releases: nette/di
Releases · nette/di
Released version 3.0.0 🎉
Features
- requires PHP 7.1
- uses declare(strict_types=1)
- uses PHP 7.1 scalar and return type hints
- autowiring via Service[] (#178)
- added collections via tagged() and typed()
- added SearchExtension
- added Schema & CompilerExtension::getConfigSchema() for automatic configuration validation with PHP 7.4 support #191
- added full validation of dynamic parameters
- configs are normalized before merge
- added AccessorDefinition, FactoryDefinition, LocatorDefinition & ImportedDefinition
- Container::addService() accepts factory closures
- Minification of metadata: added option 'di › export › types',
tags
andparameters
- added Reference, object representing reference to @service of @\Class
- better exception messages
- Helpers::expand() expands %params% in keys [Closes nette/nette#766]
- Helpers::expand() supports %dynamic.item% for dynamic parameters
- Compiler, CompilerExtension: improved Loader extendability (#62)
- ServiceDefinition::setArgument() added [Closes #171][Closes #172]
- Processor: names of anonymous services are just numbers
- ContainerBuilder::addDefinition(null) adds anonymous service
- added PhpStorm metadata for autocompletion
- added CompilerExtension::loadDefinitionsFromConfig()
- Loader: added support for %param% in 'include' section [Closes #170][Closes phpstan/phpstan#2020]
Changes
- removed deprecated support for inheritance 'child < parent' (BC break)
- some classes & members marked as final (BC break)
- Compiler: container has declare(strict_types=1)
- removed unused PhpReflection
- Processor::filterArguments() translates @service to object Reference
- Nette\DI\Helpers::filterArguments() moved to Nette\DI\Config\Processor
- Config\Processor: options 'class' & 'type', 'dynamic' & 'imported' are aliases
- Compiler::loadDefinitions() is not static and removed first parameter (BC break)
- Compiler::loadDefinition() is deprecated (BC break)
- Compiler: processing of config files moved to new class Nette\DI\Config\Processor
- ServiceDefinition divided into Definition & ServiceDefinition
- ContainerBuilder divided into Autowiring & Resolver
- ServiceDefinition & Statement moved to Nette\DI\Definitions namespace
- renamed Nette\DI\Config\IAdapter -> Adapter
- NeonAdapter: added deprecation notice for operator ?
- removed IniAdapter (BC break) (#177)
- ServiceBuilder::setType() & getType() as a replacements for setClass() and getClass()
- Compiler: added configuration option 'type' as replacement for 'class'
- ServiceDefinition::setClass() parameter $args is deprecated (BC break) (#146)
- Compiler::loadDefinitions() renamed to loadDefinitionsFromConfig(), better deprecation messages
- InjectExtension: tag 'inject' changed to 'nette.inject'
- DIExtension: tag 'run' is deprecated (BC break)
- Container: deprecated support for dynamically added services (BC break)
- Container: removed support for statically added createService* methods (BC break)
- Container::$meta divided to $types, $aliases, $tags & $wiring (BC break)
- Helpers::EXTENDS_KEY & OVERWRITE replaced with PREVENT_MERGING (BC break)
Released version 2.4.15
- compatibility with nette/php-generator 3.x #182
- updated to nette/utils 2.5
- ContainerBuilder: improved error messages
- Container: removed leading __ from anonymous method names
- Compiler: names of anonymous services are just numbers
- Compiler::
loadDefinitions()
sorts definitions only if needed - Compiler: added option 'imported' as alias for 'dynamic'
- CompilerExtension::
validateConfig()
prints 'section › value' instead of section.value in exception message - added PhpStorm metadata for autocompletion
- PhpGenerator: fixed type of generated factories in Container $meta
For the details you can have a look at the diff.
Released version 2.4.14
Released version 2.4.13
- ContainerBuilder::
completeStatement()
improved error message - Helpers::
autowireArguments()
improved error message - ServiceCreationException: can alter exception message
- names in error "Multiple services of type ..." are sorted
- ContainerBuilder: fixed type of service
For the details you can have a look at the diff.
Released version 2.4.12
- ContainerPanel: compatibility with Tracy 2.5
- coding style
For the details you can have a look at the diff.
Released version 2.4.11
- DecoratorExtension: do not decorate accessors by inner type (possible BC break)
- ContainerBuilder: added check that accessor have no setup
- Loader: add includes recursive limitation #164 #162
- ContainerBuilder: added service type to ServiceCreationException (#151)
For the details you can have a look at the diff.
Released version 2.4.10
- supports PHP up to 7.2
- added ServiceBuilder::
setType()
&getType()
as a future replacements forsetClass()
andgetClass()
- Compiler: added configuration option 'type' as a future replacement for 'class'
- Loader: fixed including of paths with scheme in config loader (#153)
- ContainerLoader: better error message when is unable to create file
- ContainerLoader: throws exception when is unable to create directory
For the details you can have a look at the diff.
Released version 2.4.9
- coding style: fixes, lowercase true/false/null
- added support for class aliases created via
class_alias()
#156 - DependencyChecker: class is expired when parent/interfaces/traits was changed
- DecoratorExtension: accepts setup syntax '$prop = val'
- ContainerBuilder: allows ::Namespace\func as factory name
- generated factories: fix return type, PHP does not support return type covariance (#152)
- removed unnecessary ltrim($class, '\')
For the details you can have a look at the diff.
Released version 2.4.8
- Compiler::loadDefinitions: allow to get to existing service by class #145
- ContainerBuilder::
getByType()
added argument $throw - DependencyChecker::
isExpired()
can alter $phpFiles modification times #144 - Helpers::
getReturnType()
ignores 'object' and 'mixed' - PhpGenerator: removed unnecessary type checking in PHP 7
- uses nette/php-generator 2.6.1 wildcards
- ContainerBuilder:
create_function()
replaced witheval()
For the details you can have a look at the diff.