All notable changes to this project will be documented in this file, in reverse chronological order by release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #56 adds support for PHP 7.3 and 7.4.
- Nothing.
- Nothing.
- Nothing.
- #56 fixes PHP 7.4 compatibility.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #49 removes checking type of class/interface typehinted parameter.
- #50 fixes recognizing array values as exportable, so factories can be generated for default array values.
-
#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 factory
Zend\Di\Container\GeneratorFactory
for creating aZend\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
-
#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
-
#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()
.
- #38 removes usage of
zend-code
- #36 fixes incorrect
phpdocs in
Zend\Di\Injector
.
-
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.
-
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
- Nothing
-
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
.
- Adds all existing documentation and publishes it at https://zendframework.github.io/zend-di/
- Nothing.
- Nothing.
- #3 fixes how
InstanceManager::sharedInstancesWithParams()
behaves when multiple calls are made with different sets of parameters (it should return different instances in that situation).
- #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()
- Nothing.
- #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
- #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.