- Add method
isNullSafe()
toPropertyPathInterface
- Require explicit argument when calling
PropertyAccessorBuilder::setCacheItemPool()
- Allow escaping
.
and[
with\
inPropertyPath
- Deprecate calling
PropertyAccessorBuilder::setCacheItemPool()
without arguments - Added method
isNullSafe()
toPropertyPathInterface
, implementing the interface without implementing this method is deprecated - Add support for the null-coalesce operator in property paths
- make
PropertyAccessor::__construct()
accept a combination of bitwise flags as first and second arguments
- deprecate passing a boolean as the second argument of
PropertyAccessor::__construct()
, expecting a combination of bitwise flags instead
- deprecated passing a boolean as the first argument of
PropertyAccessor::__construct()
, expecting a combination of bitwise flags instead - added the ability to disable usage of the magic
__get
&__set
methods
- Added an
UninitializedPropertyException
- Linking to PropertyInfo extractor to remove a lot of duplicate code
- deprecated passing
null
as$defaultLifetime
2nd argument ofPropertyAccessor::createCache()
method, pass0
instead
- added a
$throwExceptionOnInvalidPropertyPath
argument to the PropertyAccessor constructor. - added
enableExceptionOnInvalidPropertyPath()
,disableExceptionOnInvalidPropertyPath()
andisExceptionOnInvalidPropertyPath()
methods toPropertyAccessorBuilder
- removed the
StringUtil
class, useSymfony\Component\Inflector\Inflector
- deprecated the
StringUtil
class, useSymfony\Component\Inflector\Inflector
instead
UnexpectedTypeException
now expects three constructor arguments: The invalid property value, thePropertyPathInterface
object and the current index of the property path.
- allowed non alpha numeric characters in second level and deeper object properties names
- [BC BREAK] when accessing an index on an object that does not implement ArrayAccess, a NoSuchIndexException is now thrown instead of the semantically wrong NoSuchPropertyException
- [BC BREAK] added isReadable() and isWritable() to PropertyAccessorInterface
- added PropertyAccessorBuilder, to enable or disable the support of "__call"
- added support for "__call" in the PropertyAccessor (disabled by default)
- [BC BREAK] changed PropertyAccessor to continue its search for a property or method even if a non-public match was found. Before, a PropertyAccessDeniedException was thrown in this case. Class PropertyAccessDeniedException was removed now.
- deprecated PropertyAccess::getPropertyAccessor
- added PropertyAccess::createPropertyAccessor and PropertyAccess::createPropertyAccessorBuilder