Releases: zendframework/zend-di
zend-di 3.1.2
zend-di 3.1.1
zend-di 3.1.0
Added
-
#34 adds the ability to pass a
Psr\Log\LoggerInterface
instance to the constructor ofZend\Di\CodeGenerator\InjectorGenerator
(e.g.new InjectorGenerator($config, $resolver, $namespace, $logger)
) -
#31 adds the service
factoryZend\Di\Container\GeneratorFactory
for creating a
Zend\Di\CodeGenerator\InjectorGenerator
instance with zend-servicemanager. -
#38 adds
Zend\Di\Resolver\InjectionInterface
that defines the
return type ofZend\Di\Resolver\DependencyResolverInterface::resolveParameters()
to prepare a stable interface for
future releases. This will not affect you unless you have implemented a custom dependency resolver that returns other
items thanZend\Di\Resolver\TypeInjection
orZend\Di\Resolver\ValueInjection
. In this case you need to change the
returned items to implement this interface. -
#38 adds parameter and return types to:
Zend\Di\CodeGenerator\AutoloadGenerator
Zend\Di\CodeGenerator\FactoryGenerator
Zend\Di\CodeGenerator\InjectorGenerator
Changed
-
#31 adds the method
getOutputDirectory()
toZend\Di\CodeGenerator\GeneratorTrait
. -
#31 adds the method
getNamespace()
toZend\Di\CodeGenerator\InjectorGenerator
. -
#37 removes the use of
count()
inZend\Di\CodeGenerator\FactoryGenerator::buildParametersCode()
to improve performance -
#38 adds strictness to
Zend\Di\CodeGenerator\FactoryGenerator::generate()
:- Adds
string
return type. - Adds throw of
RuntimeException
on failures.
- Adds
-
#38 removes inheritance of
Zend\Di\Resolver\AbstractInjection
:- from
Zend\Di\Resolver\ValueInjection
- from
Zend\Di\Resolver\TypeInjection
- from
-
#38 adds implementation of
Zend\Di\Resolver\InjectionInterface
:- to
Zend\Di\Resolver\ValueInjection
- to
Zend\Di\Resolver\TypeInjection
- to
Deprecated
-
#38 deprecates
Zend\Di\Resolver\AbstractInjection
.
in favour ofZend\Di\Resolver\InjectionInterface
-
#38 deprecates
Zend\Di\Resolver\TypeInjection::getType
in favour of__toString()
. -
#38 deprecates
Zend\Di\Resolver\ValueInjection::getValue()
in favour oftoValue()
.
Removed
- #38 removes usage of
zend-code
Fixed
- #36 fixes incorrect
phpdocs inZend\Di\Injector
.
zend-di 3.0.0
Added
-
Zend\Di\DefaultContainer
implementingPsr\Container\ContainerInterface
:- Can act as a standalone IoC container.
- Provides
build()
to be signature compatible withZend\ServiceManager\ServiceManager
.
-
Zend\Di\Injector
implementingZend\Di\InjectorInterface
- Designed to compose a
Psr\Container\ContainerInterface
implementation for purposes of resolving dependencies. By default, this is theDefaultContainer
implementation. - Utilizes
Zend\Di\Resolver\DependencyResolverInterface
to resolve arguments to their types.
- Designed to compose a
-
PHP 7.1 type safety.
-
Classes to wrap value and type injections.
-
Support for zend-component-installer. This allows it to act as a standalone config-provider or zend-mvc module, and eliminates the need for zend-servicemanager-di.
-
Zend\Di\ConfigInterface
to allow providing custom configuration. -
Code generator for generating a pre-resolved injector and factories.
Changed
-
Renames
Zend\Di\DependencyInjectionInterface
toZend\Di\InjectorInterface
. It defines the injector to create new instances based on a class or alias name.newInstance()
changes tocreate()
.has()
changes tocanCreate()
.- Removes
get()
.
-
Moves strategies to resolve method parameters to
Zend\Di\Resolver
Deprecated
- Nothing
Removed
-
Support for PHP versions less than 7.1
-
Support for HHVM.
-
Zend\Di\Defintion\CompilerDefinition
in favour ofZend\Di\CodeGenerator
. -
Zend\Di\InstanceManager
,Zend\Di\ServiceLocator
,Zend\Di\ServiceLocatorInterface
andZend\Di\LocatorInterface
in favor ofPsr\Container\ContainerInterface
. -
Zend\Di\Di
is removed in favour ofZend\Di\DefaultContainer
. -
Zend\Di\DefinitionList
-
Zend\Di\Definition\BuilderDefinition
-
Zend\Di\Definition\ArrayDefinition
-
Parameters passed to
newInstance()
will only be used for constructing the
requested class and no longer be forwarded to nested objects. -
get()
no longer supports a$parameters
array;newInstance()
still does. -
Removed setter/method injections.
-
Generators in
Zend\Di\ServiceLocator
in favor ofZend\Di\CodeGenerator
.
Fixed
zend-di 2.6.1
Added
- Adds all existing documentation and publishes it at https://zendframework.github.io/zend-di/
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #3 fixes how
InstanceManager::sharedInstancesWithParams()
behaves when multiple calls are made with different sets of parameters (it should return different instances in that situation).
zend-di 2.6.0
Added
- #16 adds container-interop as a dependency, and updates the
LocatorInterface
to extendInterop\Container\ContainerInterface
. This required adding the following methods:Zend\Di\Di::has()
Zend\Di\ServiceLocator::has()
Deprecated
- Nothing.
Removed
- #15 and #16 remove most development dependencies, as the functionality could be reproduced with generic test assets or PHP built-in classes. These include:
- zend-config
- zend-db
- zend-filter
- zend-log
- zend-mvc
- zend-view
- zend-servicemanager
Fixed
- #16 updates the try/catch block in
Zend\Di\Di::resolveMethodParameters()
to catch container-interop exceptions instead of the zend-servicemanager-specific exception class. Since all zend-servicemanager exceptions derive from container-interop, this provides more flexibility in using any container-interop implementation as a peering container.