Skip to content

Releases: nette/di

Released version 3.0.0 🎉

03 Apr 21:27
@dg dg
Compare
Choose a tag to compare

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)

Released version 2.4.15

30 Jan 15:02
@dg dg
Compare
Choose a tag to compare
  • 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

18 Sep 10:29
@dg dg
Compare
Choose a tag to compare
  • ContainerBuilder::resolveImplement supports polymorphism (#175)
  • Helpers::expand() supports %dynamic.item% for dynamic parameters

For the details you can have a look at the diff.

Released version 2.4.13

28 Jun 11:12
@dg dg
Compare
Choose a tag to compare
  • 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

17 May 09:34
@dg dg
Compare
Choose a tag to compare
  • ContainerPanel: compatibility with Tracy 2.5
  • coding style

For the details you can have a look at the diff.

Released version 2.4.11

02 Apr 19:41
@dg dg
Compare
Choose a tag to compare
  • 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

06 Sep 12:56
@dg dg
Compare
Choose a tag to compare
  • supports PHP up to 7.2
  • added ServiceBuilder::setType() & getType() as a future replacements for setClass() and getClass()
  • 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

14 Jul 07:41
@dg dg
Compare
Choose a tag to compare
  • 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

17 Mar 15:23
@dg dg
Compare
Choose a tag to compare
  • 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 with eval()

For the details you can have a look at the diff.

Released version 2.3.14

17 Mar 15:19
@dg dg
Compare
Choose a tag to compare
  • compatibility with nette/php-generator v2.6 #150
  • ContainerBuilder: create_function() replaced with eval()
  • tests: fixed mkdir() race condition
  • each() replaced with current() and next()

For the details you can have a look at the diff.