Я пытаюсь создать пакет, в котором все сущности могут быть заменяемыми / расширяемыми, и наткнулся на эти две страницы:
Сейчас я впервые пытаюсь применить его на практике и создал этот простой тест:
В комплекте я создалинтерфейс для сущности Country
namespace My\Custom\Bundle\Entity;
interface CountryInterface
{
/**
* @return string|null
*/
public function getIsoCode(): ?string;
}
Затем я создал сам объект
namespace My\Custom\Bundle\Entity;
/**
* @ORM\Entity()
*/
class Country implements CountryInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string|null
* @ORM\Column(type="string", nullable=true)
*/
private $isoCode;
// getters/setters
}
И в своем приложении я попытался расширить сущность:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use My\Custom\Bundle\Entity\Country as BaseCountry;
/**
* @ORM\Entity()
*/
class Country extends BaseCountry
{
/**
* @var string
* @ORM\Column(type="string", nullable=true)
*/
protected $name;
}
Затем я добавил это в своей конфигурации доктрины:
doctrine:
orm:
resolve_target_entities:
My\Custom\Bundle\CountryInterface: App\Entity\Country
Но при выполнении doctrine:migrations:diff
я всегда получаю сообщение об ошибке: 1027 *
Что я делаю неправильно?