7 * moved the `ExtensionCompilerPass` to before-optimization passes with priority -1000
8 * deprecated "public-by-default" definitions and aliases, the new default will be "private" in 4.0
9 * added `EnvVarProcessorInterface` and corresponding "container.env_var_processor" tag for processing env vars
10 * added support for ignore-on-uninitialized references
11 * deprecated service auto-registration while autowiring
12 * deprecated the ability to check for the initialization of a private service with the `Container::initialized()` method
13 * deprecated support for top-level anonymous services in XML
14 * deprecated case insensitivity of parameter names
15 * deprecated the `ResolveDefinitionTemplatesPass` class in favor of `ResolveChildDefinitionsPass`
16 * added `TaggedIteratorArgument` with YAML (`!tagged foo`) and XML (`<service type="tagged"/>`) support
17 * deprecated `AutowireExceptionPass` and `AutowirePass::getAutowiringExceptions()`, use `Definition::addError()` and the `DefinitionErrorExceptionPass` instead
23 * deprecated autowiring services based on the types they implement;
24 rename (or alias) your services to their FQCN id to make them autowirable
25 * added "ServiceSubscriberInterface" - to allow for per-class explicit service-locator definitions
26 * added "container.service_locator" tag for defining service-locator services
27 * added anonymous services support in YAML configuration files using the `!service` tag.
28 * added "TypedReference" and "ServiceClosureArgument" for creating service-locator services
29 * added `ServiceLocator` - a PSR-11 container holding a set of services to be lazily loaded
30 * added "instanceof" section for local interface-defined configs
31 * added prototype services for PSR4-based discovery and registration
32 * added `ContainerBuilder::getReflectionClass()` for retrieving and tracking reflection class info
33 * deprecated `ContainerBuilder::getClassResource()`, use `ContainerBuilder::getReflectionClass()` or `ContainerBuilder::addObjectResource()` instead
34 * added `ContainerBuilder::fileExists()` for checking and tracking file or directory existence
35 * deprecated autowiring-types, use aliases instead
36 * added support for omitting the factory class name in a service definition if the definition class is set
37 * deprecated case insensitivity of service identifiers
38 * added "iterator" argument type for lazy iteration over a set of values and services
39 * added file-wide configurable defaults for service attributes "public", "tags",
40 "autowire" and "autoconfigure"
41 * made the "class" attribute optional, using the "id" as fallback
42 * using the `PhpDumper` with an uncompiled `ContainerBuilder` is deprecated and
43 will not be supported anymore in 4.0
44 * deprecated the `DefinitionDecorator` class in favor of `ChildDefinition`
45 * allow config files to be loaded using a glob pattern
46 * [BC BREAK] the `NullDumper` class is now final
51 * allowed to prioritize compiler passes by introducing a third argument to `PassConfig::addPass()`, to `Compiler::addPass` and to `ContainerBuilder::addCompilerPass()`
52 * added support for PHP constants in YAML configuration files
53 * deprecated the ability to set or unset a private service with the `Container::set()` method
54 * deprecated the ability to check for the existence of a private service with the `Container::has()` method
55 * deprecated the ability to request a private service with the `Container::get()` method
56 * deprecated support for generating a dumped `Container` without populating the method map
61 * removed all deprecated codes from 2.x versions
66 * deprecated the abstract ContainerAware class in favor of ContainerAwareTrait
67 * deprecated IntrospectableContainerInterface, to be merged with ContainerInterface in 3.0
68 * allowed specifying a directory to recursively load all configuration files it contains
69 * deprecated the concept of scopes
70 * added `Definition::setShared()` and `Definition::isShared()`
71 * added ResettableContainerInterface to be able to reset the container to release memory on shutdown
72 * added a way to define the priority of service decoration
73 * added support for service autowiring
78 * deprecated synchronized services
83 * added new factory syntax and deprecated the old one
88 * added DecoratorServicePass and a way to override a service definition (Definition::setDecoratedService())
89 * deprecated SimpleXMLElement class.
94 * added support for expressions in service definitions
95 * added ContainerAwareTrait to add default container aware behavior to a class
100 * added Extension::isConfigEnabled() to ease working with enableable configurations
101 * added an Extension base class with sensible defaults to be used in conjunction
102 with the Config component.
103 * added PrependExtensionInterface (to be able to allow extensions to prepend
104 application configuration settings for any Bundle)
109 * added IntrospectableContainerInterface (to be able to check if a service
110 has been initialized or not)
111 * added ConfigurationExtensionInterface
112 * added Definition::clearTag()
113 * component exceptions that inherit base SPL classes are now used exclusively
114 (this includes dumped containers)
115 * [BC BREAK] fixed unescaping of class arguments, method
116 ParameterBag::unescapeValue() was made public