Skip to content

Latest commit

 

History

History
82 lines (55 loc) · 2.71 KB

UPGRADE.md

File metadata and controls

82 lines (55 loc) · 2.71 KB

Note about upgrading: Doctrine uses static and runtime mechanisms to raise awareness about deprecated code.

  • Use of @deprecated docblock that is detected by IDEs (like PHPStorm) or Static Analysis tools (like Psalm, phpstan)
  • Use of our low-overhead runtime deprecation API, details: https://github.com/doctrine/deprecations/

Upgrade to 2.0

You need PHP 8.1 or newer to use this library.

BC BREAK: Add native types declarations to all the methods

All types defined in phpdoc annotations are now defined natively, they must be added to your code if you extend the classes or implement the interfaces.

Loggers have to implement the PSR-3 contracts

  • Passing a callable to AbstractExecutor::setLogger() is not possible anymore, pass a PSR-3 logger instead.
  • The method AbstractExecutor::log() has been removed without replacement.

Specifying the class is mandatory when loading references

For the following method, the class param is now mandatory:

  • AbstractFixture::getReference
  • AbstractFixture::hasReference
  • ReferenceRepository::setReferenceIdentity
  • ReferenceRepository::hasIdentity
  • ReferenceRepository::getReference
  • ReferenceRepository::setReference

The following method was removed:

  • ReferenceRepository::getReferences

The following classes are now final, each of them has an interface you can implement:

  • Doctrine\Common\DataFixtures\Executor\MongoDBExecutor
  • Doctrine\Common\DataFixtures\Executor\ORMExecutor
  • Doctrine\Common\DataFixtures\Executor\PHPCSExecutor
  • Doctrine\Common\DataFixtures\Purger\MongoDBPurger
  • Doctrine\Common\DataFixtures\Purger\ORMPurger
  • Doctrine\Common\DataFixtures\Purger\PHPCSPurger

Upgrade to 1.8

Deprecated closure loggers in favor of PSR-3

  • Passing a callable to AbstractExecutor::setLogger() is deprecated, pass a PSR-3 logger instead.
  • The method AbstractExecutor::log() is deprecated without replacement.

Finalized classes

Executor and Purger classes are final, they cannot be extended. AbstractExecutor is internal. It cannot be extended or used as typehint.

Upgrade to 1.6

BC BREAK: CircularReferenceException no longer extends Doctrine\Common\CommonException

We don't think anyone catches this exception in a catch (CommonException) statement.

doctrine/data-fixtures no longer requires doctrine/common

If you rely on types from doctrine/common, you should require that package, regardless of whether other packages require it.

Between v1.0.0-ALPHA1 and v1.0.0-ALPHA2

The FixtureInterface was changed from

interface FixtureInterface
{
    load($manager);
}

to

use Doctrine\Common\Persistence\ObjectManager;

interface FixtureInterface
{
    load(ObjectManager $manager);
}