Releases
v3.0.0
dg
released this
03 Apr 21:27
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
and parameters
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)
You can’t perform that action at this time.