- Add
#[WhenNot]
attribute to prevent service from being registered in a specific environment - Generate a meta file in JSON format for resource tracking
- Add
SkippingResourceChecker
- Add support for
defaultNull()
onBooleanNode
- Add
StringNode
andStringNodeDefinition
- Add
ArrayNodeDefinition::stringPrototype()
method - Add
NodeBuilder::stringNode()
method
- Allow custom meta location in
ResourceCheckerConfigCache
- Allow custom meta location in
ConfigCache
- Require explicit argument when calling
NodeBuilder::setParent()
- Allow enum values in
EnumNode
- Deprecate calling
NodeBuilder::setParent()
without any arguments - Add a more accurate typehint in generated PHP config
- Allow using environment variables in
EnumNode
- Add Node's information in generated Config
- Add
DefinitionFileLoader
class to load a TreeBuilder definition from an external file - Add
DefinitionConfigurator
helper
- Remove
BaseNode::getDeprecationMessage()
- Add support for generating
ConfigBuilder
for extensions
- updated the signature of method
NodeDefinition::setDeprecated()
toNodeDefinition::setDeprecation(string $package, string $version, string $message)
- updated the signature of method
BaseNode::setDeprecated()
toBaseNode::setDeprecation(string $package, string $version, string $message)
- deprecated passing a null message to
BaseNode::setDeprecated()
to un-deprecate a node - deprecated
BaseNode::getDeprecationMessage()
, useBaseNode::getDeprecation()
instead
- Dropped support for constructing a
TreeBuilder
without passing root node information. - Removed the
root()
method inTreeBuilder
, pass the root node information to the constructor instead - Added method
getChildNodeDefinitions()
to ParentNodeDefinitionInterface - Removed
FileLoaderLoadException
, useLoaderLoadException
instead
- added a way to exclude patterns of resources from being imported by the
import()
method
- deprecated using environment variables with
cannotBeEmpty()
if the value is validated withvalidate()
- made
Resource\*
classes final and not implementSerializable
anymore - deprecated the
root()
method inTreeBuilder
, pass the root node information to the constructor instead
- deprecated constructing a
TreeBuilder
without passing root node information - renamed
FileLoaderLoadException
toLoaderLoadException
- added
setPathSeparator
method toNodeBuilder
class - added third
$pathSeparator
constructor argument toBaseNode
- the
Processor
class has been made final
- removed
ConfigCachePass
- added
setDeprecated()
method to indicate a deprecated node - added
XmlUtils::parse()
method to parse an XML string - deprecated
ConfigCachePass
- added
ReflectionClassResource
class - added second
$exists
constructor argument toClassExistenceResource
- made
ClassExistenceResource
work with interfaces and traits - added
ConfigCachePass
(originally in FrameworkBundle) - added
castToArray()
helper to turn any config value into an array
- removed
ReferenceDumper
class - removed the
ResourceInterface::isFresh()
method - removed
BCResourceInterfaceChecker
class - removed
ResourceInterface::getResource()
method
The edge case of defining just one value for nodes of type Enum is now allowed:
$rootNode
->children()
->enumNode('variable')
->values(['value'])
->end()
->end()
;
Before: InvalidArgumentException
(variable must contain at least two
distinct elements).
After: the code will work as expected and it will restrict the values of the
variable
option to just value
.
- deprecated the
ResourceInterface::isFresh()
method. If you implement custom resource types and they can be validated that way, make them implement the newSelfCheckingResourceInterface
. - deprecated the getResource() method in ResourceInterface. You can still call this method on concrete classes implementing the interface, but it does not make sense at the interface level as you need to know about the particular type of resource at hand to understand the semantics of the returned value.
- added
ConfigCacheInterface
,ConfigCacheFactoryInterface
and a basicConfigCacheFactory
implementation to delegate creation of ConfigCache instances
- added
ArrayNodeDefinition::canBeEnabled()
andArrayNodeDefinition::canBeDisabled()
to ease configuration when some sections are respectively disabled / enabled by default. - added a
normalizeKeys()
method for array nodes (to avoid key normalization) - added numerical type handling for config definitions
- added convenience methods for optional configuration sections to
ArrayNodeDefinition
- added a utils class for XML manipulations
- added a way to add documentation on configuration
- implemented
Serializable
on resources LoaderResolverInterface
is now used instead ofLoaderResolver
for type hinting