v2.9.0 - Jul 12, 2018

Starting with this release, some of the components were moved to separate packages:

    Event Manager
    Persistence
    Reflection

They have been removed from this package and replaced with a dependency on the new packages.

This release also introduces the following deprecations:

    Doctrine\Common\Proxy component is deprecated, use ocramius/proxy-manager instead
    Doctrine\Common\Util\Debug is deprecated, use symfony/var-dumper instead
    Doctrine\Common\Lexer is deprecated, use Doctrine\Common\Lexer\AbstractLexer from doctrine/lexer instead
    Doctrine\Common\Util\Inflector is deprecated, use Doctrine\Common\Inflector\Inflector from doctrine/inflector instead
    Doctrine\Common\Version is deprecated, refrain from checking Common version at runtime
    Doctrine\Common\Util\ClassUtils is deprecated without replacement,
    Doctrine\Common\CommonException is deprecated without replacement.

Additionally, doctrine/common package now enters a bugfix-only mode and will be gradually phased out.
Please migrate to specific components instead.

    Total issues resolved: 1
    Total pull requests resolved: 5
    Total contributors: 4

Deprecation

    846: Doctrine\Common\Lexer should be marked as deprecated thanks to @stof
    845: doctrine/common deprecations thanks to @Majkl578

Improvement

    844: Separate persistence and reflection thanks to @Majkl578
    842: Separate Event Manager to doctrine/event-manager thanks to @Majkl578
    840: Fix CS thanks to @simPod

Documentation

    829: replace connection name with object manager name thanks to @xabbuh


v2.8.1 - Aug 31, 2017

This release fixes an unintentional BC break that prevented
passing all the possible available flags to
the Doctrine\Common\Proxy\AbstractProxyFactory.

Total issues resolved: 2

    815: Convert proxy factory auto generate mode to integer thanks to @dragosprotung
    816: Convert proxy factory auto generate mode to integer thanks to @dragosprotung


v2.8.0 - Jul 22, 2017

This release removes support for HHVM and increases the minimum
supported PHP version to PHP 7.1.0.

In addition to that, code has been cleaned up to remove quirks
related to previous PHP version support handling.

We introduced static analysis in our continuous integration
pipeline by integrating PHPStan
with the build process.

In addition to these changes there were multiple minor bugfixes
around the test suite, PHPUnit compatibility, the Debug::export()
utility and docBlock/documentation correctness.

Total issues resolved: 22

    716: Minor docblock spelling correction in AbstractClassMetadataFactory thanks to @gnat42
    718: Removed empty /lib/vendor directory from auto-generated ZIP archives thanks to @mlocati
    757: Bumped phpunit version to 5.7 thanks to @gabbydgab
    760: Fixed typo in ManagerRegistry documentation thanks to @aledeg
    765: Integrated PHPStan and discovered related fixes thanks to @ondrejmirtes
    769: Specify array type in ClassMetadataFactory::getAllMetadata() docblock thanks to @Soullivaneuh
    770: ProxyFactory may generate invalid proxies with no error thanks to @theofidry
    771: ProxyGenerator: Disallow creating proxies for abstract and final classes thanks to @Majkl578
    772: Invalid data provider in the ObjectManagerDecoratorTest thanks to @Ocramius
    773: #772 Fixed ObjectManagerDecoratorTest, which wasn't considering void hints thanks to @ondrejmirtes
    776: ProxyGenerator has a typo in a docblock annotation, causing annotation reading to crash thanks to @alu
    777: #776 Fix typo in ProxyGenerator docblock annotation thanks to @Majkl578
    778: Fix return type docblock for EventManager#dispatchEvent() thanks to @ostrolucky
    781: Removed dead links to the previous JIRA-based issue tracker thanks to @fridde
    785: Dropped PHP 5.x and 7.0 support - minimum of PHP 7.1 requirement thanks to @Majkl578
    789: Removed redundant isset() + empty() check in EventManager#hasListeners() thanks to @ostrolucky
    790: Removing isset() checks before unset() calls in EventManager#removeEventListener() thanks to @ostrolucky
    791: Removed always true execution path conditional from StaticReflectionParser thanks to @ostrolucky
    793: Updated PHPStan dev dependency to 0.7 thanks to @ondrejmirtes
    796: Dropped HHVM support thanks to @lcobucci
    798: Removed quirks for unsupported PHP versions in Proxy code generation thanks to @Majkl578
    802: #386 - Simplifying Debug::export() so that runtime properties are also considered thanks to @ostrolucky


v2.7.3 - Jul 22, 2017

This release solves minor issues around error message generation in the PersistentObject object magic methods, StaticReflectionParser ability to recognize the ::class pseudo-constant, and removes calls to deprecated methods in PreUpdateEventArgs.

Total issues resolved: 5

    139: generation of error message fails under certain circumstances thanks to @nils-wisiol
    744: StaticReflectionParser is dumb, assumes Class::class references are class level thanks to @heddn
    780: Quick-fix to avoid call to deprecated function. thanks to @fridde
    792: Fix __call exception when no metadata has been set thanks to @ostrolucky
    806: Fix #744 - Stop overwriting class docblock with '' triggered by ::class thanks to @Sam152


v2.7.2 - Jan 13, 2017

This release fixes an issue in the proxy code generation
that prevented an optimization in proxy identifier getter methods.

Specifically, if you have a method like following in your proxied
class, then this release will ensure that a call to that method
will not initialize your proxy if not needed:

class MyEntity
{
    private $id;
    public function getId() : ?int
    {
        return $this->id;
    }
}

Total issues resolved: 3

    761: ProxyGenerator::isShortIdentifierGetter in PHP 7.1 does not support nullable types
    762: #761 Added support for PHP 7.1 identifier nullable return type
    763: Fix #761, #762: support nullable identifier hint in proxies


v2.7.1 - Dec 3, 2016

This release fixes an issue that prevented the proxy generator from generating valid
proxies when running under PHP 7.0.* and encountering following type of method
signature:

public function foo(SomeClass $bar = null, $baz) {}

Total issues resolved: 4

    751: Error in generated Entity Proxy class
    752: Fix #751: non optional type hinted parameters pre 7.1 support
    753: Fix #751 - backport #752 - proxy generation broken on non-optional parameters with default value
    754: Fix #751 - backport #752 - proxy generation broken on non-optional parameters with default value


v2.7.0 - Nov 30, 2016

This release introduces support for PHP 7.1 functionality, specifically:

    nullable parameter and return types
    void hint support
    iterable hint support

In addition to that, performance improvements were introduced in the FileDriver,
and minor cleanups were performed all over the codebase.

Total issues resolved: 11

    394: Improve FileDriver Mapping data retrieval by caching results locally
    706: Travis-CI: drop PHP 7.0 from allowed failures, it passes well
    719: Improve the phpdoc of ObjectRepository
    720: Fixed detection of identifier getter with PHP 7 return type
    721: Small improvements from humbug mutation testing discoveries
    724: Upgrade PHPUnit and PHP version dependencies
    725: Removing useless incremental of the current exporting level from debug exporter
    729: Util\Debug: export parent class private attributes and DateTimeImmutable
    731: Support nullable types (PHP 7.1) in ProxyGenerator
    734: ProxyGenerator: Added support for PHP 7.1 features
    743: Fix parameter/return type validation for interfaces (introduced in #734)


v2.6.2 - Nov 30, 2016

Total issues resolved: 2

    717: Don't fail if the cached type is not ClassMetadata
    727: AbstractManagerRegistry::resetManager() must return the new manager


v2.6.1 - Dec 25, 2015

    367: Fix how namespace matching happens in SymfonyFileLocator


v2.6.0 - Dec 4, 2015

Bug

    DCOM-299 - GH-383 Silence chmod() warnings
    DCOM-301 - GH-384 Fixed bug with getAllClassNames() in subdirectories
    DCOM-303 - GH-387 Fixed fatal error in AbstractManagerRegistry

Documentation

    DCOM-285 - GH-366 Update DefaultFileLocator.php to reflect that file extension should include a dot
    DCOM-304 - GH-388 Update LICENSE

Improvement

    DCOM-289 - GH-373 composer: bump to PHPUnit 4.7
    DCOM-296 - GH-380 Add .gitattributes (fixes #379)
    DCOM-298 - GH-382 Minor CS fixes in StaticReflectionProperty
    DCOM-305 - GH-389 composer: use PSR-4 autoload
    DCOM-306 - GH-390 composer: drop duplicated "archive"

New Feature

    DCOM-294 - GH-376 Proxy: Added support for PHP 7 return & parameter type hints


v2.5.3 - Dec 25, 2015

    367: Fix how namespace matching happens in SymfonyFileLocator


v2.5.2 - Dec 4, 2015

Bug-fixes

    DCOM-299 #383 Silence chmod() warnings
    DCOM-301 #384 Fixed bug with getAllClassNames() in subdirectories
    DCOM-303 #387 Fixed fatal error in AbstractManagerRegistry

Improvement

    DCOM-289 #373 composer: bump to PHPUnit 4.7


v2.5.1 - 31 Aug 2015

v2.5.0 - 02 Apr 2015

v2.5.0-beta1 - 25 Mar 2015

Bug

    DCOM-129 - Annotation parser matches colon after annotation
    DCOM-151 - GH-233 [DocParser] Fix trying include classes if its must be ignored.
    DCOM-162 - GH-244 return parameter for debug method
    DCOM-168 - ignoredAnnotationNames doesn't work in Annotation loop
    DCOM-175 - Proxies return private properties in __sleep, which is not supported by PHP.
    DCOM-191 - Wrong inflection for "identity"
    DCOM-212 - GH-296 Proxies shouldn't serialize static properties in __sleep()
    DCOM-216 - GH-298 Silence E_NOTICE warning: "Undefined index".
    DCOM-220 - GH-304 fix typo
    DCOM-223 - GH-308 fix the optimize regex and adapt the tests to actually test classAnnotat...
    DCOM-228 - GH-312 Improve UnexpectedValueException error message
    DCOM-261 - GH-344 Fix fatal error when classexist tries to call the protected loader
    DCOM-270 - GH-351 Added validation where allowed QCNs with ":" NS separator
    DCOM-272 - Proxy generator doesn't understand splat operator (PHP 5.6 argument unpacking)

Documentation

    DCOM-237 - GH-318 Fixed link to Documentation
    DCOM-280 - GH-359 Fixed missing / incorrect docblocks

Improvement

    DCOM-246 - GH-328 Optimized imports
    DCOM-247 - GH-329 Remove dead config
    DCOM-263 - GH-347 Class loader: skip non-existing files and files not containing the requested class
    DCOM-278 - GH-358 travis: PHP 7.0 nightly added, allowed failure

New Feature

    DCOM-257 - GH-342 Class metadata loading fallback hook in AbstractClassMetadataFactory
    DCOM-277 - GH-357 Custom namespace separators for SymfonyFileLocator


v2.4.2 - 21 May 2014

Bug

    [DDC-2708] - [DCOM-219] Fix for PHP 5.4.8 not returning true for is_callable on abstract methods anymore
    [DCOM-204] Fix include of entities inside PHAR.
    [DCOM-175] Private properties of parent classes of a proxy are now correctly handled in __sleep
    [DCOM-212] Static properties should not be returned by __sleep in proxies

Improvement

    [DCOM-216] Better exceptions when a proxy is instantiated with an invalid identifier
    [DCOM-206] Removed gender bias in a DocBlock in EventManager
    [DCOM-220] Fixed typo in ObjectManager DocBlock
    [DCOM-228] Better exception message when the proxy dir is not writable
    Added HHVM to build matrix
    Requiring PHPUnit as composer dev-dependency
    [DCOM-223] Better support for multi-line annotations
    [DCOM-237] Fixed links to the documentation

New Feature

    [DDC-1247] - Implemented AnnotationDriver#addExcludePath()


v2.4.1 - 7 September 2013

Bug

    [DCOM-208] - [GH-290] Fixed html_errors overwriting

Improvement

    [DCOM-193] - [GH-275] Improve code to throw exception getting parents class instead of php warning

New Feature

    [DCOM-173] - Add test assets and tests for proxy generators
    [DCOM-96] - Extract a common ProxyFactory
    [DCOM-148] - [GH-229] Decorator base class for object manager decorators
    [DCOM-154] - [GH-236] Adding Support for Couchbase as Caching Infrastructure.
    [DCOM-210] - ProxyFactory: Modes for NEVER, FILE_NOT_EXISTS, ALWAYS
    [DCOM-209] - [GH-291] [DDC-717] Add eval() and FILE_NOT_EXISTS strategies for proxy generation
