Skip to content

Releases: nette/di

Released version 3.0.7

31 Dec 03:19
@dg dg
Compare
Choose a tag to compare
  • Compiler: triggers schema warnings
  • uses nette/schema 1.1
  • DecoratorExtension: throws exception if class not exists

Released version 3.0.6

25 Nov 22:44
@dg dg
Compare
Choose a tag to compare
  • added PHP 8 attribute Inject
  • cooperation with union types
  • Resolver::completeException() appends entity to exception message when type is not known
  • DependencyChecker: checks types of properties
  • DependencyChecker: fixed compatibility with PHP 8 #247
  • DIExtension: detects Tracy by presence of service @tracy\Bar #245
  • InjectExtension: updated exception messages

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

Released version 2.4.17

25 Nov 22:52
@dg dg
Compare
Choose a tag to compare

compatible with PHP 8.0

Released version 3.0.5

13 Aug 13:10
@dg dg
Compare
Choose a tag to compare
  • compatible with PHP 8.0
  • added new internal functions bool(), int(), float(), string()
  • added Helpers::escape()
  • improved exception messages

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

Released version 3.0.4

15 May 23:30
@dg dg
Compare
Choose a tag to compare
  • Resolver: fixed self-dependency #240
  • InjectExtension: chooses a more specific type #234
  • SearchExtension: Exception when class is not autoloaded.
  • DecoratorExtension: resolves definitions before uses its findByType()
  • Container: added getByName() as alias for getService()
  • Compiler: moved Search extension before Decorator (#197)
  • Resolver: better exception message (#233)
  • InjectExtension: maintains natural order of inject methods (BC break)

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

Released version 3.0.3

20 Jan 12:20
@dg dg
Compare
Choose a tag to compare
  • CompilerExtension: added $initialization as replacement for modifying initialize() method
  • class aliases are loaded on demand #226
  • Statement: can be used as dynamic parameter #228
  • parameters: dynamic parameters are resolved
  • parameters: statements are replaced with null in Container
  • %parameters% resolves to all parameters
  • Revert "parameters can contain statements #221"
  • ContainerPanel: uses capturing

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

Released version 3.0.2

27 Dec 03:15
@dg dg
Compare
Choose a tag to compare
  • InjectExtension: accepts native type
  • parameters can contain statements #221
  • InjectExtension: scans resolved class #218
  • SearchExtension: removes conflicting services before it starts to add them
  • Resolver.autowireArguments() fixed counting optional args
  • Resolver::autowireArguments() refactoring, added autowireArgument(), Resolver|Container replaced with callback
  • ExtensionsExtension: better exception message #219

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

Released version 2.4.16

19 Nov 18:26
@dg dg
Compare
Choose a tag to compare
  • supports PHP 7.4
  • Helpers::expand() fixed expansion of dynamic parameters

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

Released version 3.0.1

07 Aug 12:20
@dg dg
Compare
Choose a tag to compare
  • SearchExtension: ability to add factory definitions from interfaces with method create() (#200)
  • Revert "Container: deprecated support for dynamically added services (BC break)" #203
  • ServiceDefinition: removed unnecessary $service variable #206
  • Autowiring: bug fix & tests
  • ExtensionsExtension: added extension type checking (#209)
  • fixed bugs reported by PhpStan (#212)(#211)(#210)(#208)(#207)(#213)(#214)
  • PHP 7.4 compatibility fixes

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

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)