AbstractFixture.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\Common\DataFixtures;
  4. use BadMethodCallException;
  5. /**
  6. * Abstract Fixture class helps to manage references
  7. * between fixture classes in order to set relations
  8. * among other fixtures
  9. */
  10. abstract class AbstractFixture implements SharedFixtureInterface
  11. {
  12. /**
  13. * Fixture reference repository
  14. *
  15. * @var ReferenceRepository
  16. */
  17. protected $referenceRepository;
  18. /**
  19. * {@inheritdoc}
  20. */
  21. public function setReferenceRepository(ReferenceRepository $referenceRepository)
  22. {
  23. $this->referenceRepository = $referenceRepository;
  24. }
  25. /**
  26. * Set the reference entry identified by $name
  27. * and referenced to managed $object. If $name
  28. * already is set, it overrides it
  29. *
  30. * @see Doctrine\Common\DataFixtures\ReferenceRepository::setReference
  31. *
  32. * @param string $name
  33. * @param object $object - managed object
  34. *
  35. * @return void
  36. */
  37. public function setReference($name, $object)
  38. {
  39. $this->referenceRepository->setReference($name, $object);
  40. }
  41. /**
  42. * Set the reference entry identified by $name
  43. * and referenced to managed $object. If $name
  44. * already is set, it throws a
  45. * BadMethodCallException exception
  46. *
  47. * @see Doctrine\Common\DataFixtures\ReferenceRepository::addReference
  48. *
  49. * @param string $name
  50. * @param object $object - managed object
  51. *
  52. * @return void
  53. *
  54. * @throws BadMethodCallException - if repository already has a reference by $name.
  55. */
  56. public function addReference($name, $object)
  57. {
  58. $this->referenceRepository->addReference($name, $object);
  59. }
  60. /**
  61. * Loads an object using stored reference
  62. * named by $name
  63. *
  64. * @see Doctrine\Common\DataFixtures\ReferenceRepository::getReference
  65. *
  66. * @param string $name
  67. *
  68. * @return object
  69. */
  70. public function getReference($name)
  71. {
  72. return $this->referenceRepository->getReference($name);
  73. }
  74. /**
  75. * Check if an object is stored using reference
  76. * named by $name
  77. *
  78. * @see Doctrine\Common\DataFixtures\ReferenceRepository::hasReference
  79. *
  80. * @param string $name
  81. *
  82. * @return bool
  83. */
  84. public function hasReference($name)
  85. {
  86. return $this->referenceRepository->hasReference($name);
  87. }
  88. }