我一直都在想這個問題,但我總是可以在沒有直接面對它的情況下解決問題。直到今天。覆蓋第三方Symfony包的主義實體
我有以下需求:
有一個實體,我要覆蓋這麼一個第三方包,我可以添加一些額外的註釋(不只是映射的註釋,JMS註釋,BeSimple註解,等等)。實體不是 a 映射超類我也不能通過使用接口來解決問題。
有人可以解決一些問題?
我會用代碼解釋:
第三方捆綁實體類我想好歹延長:
namespace Third\PartyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* User
*
* @ORM\Table(name="User")
* @ORM\Entity(repositoryClass="Third\PartyBundle\Repository\UserRepository")
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=20
*
* @Assert\NotBlank()
*/
private $name;
}
我想達到的目標:
namespace My\OwnBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use BeSimple\SoapBundle\ServiceDefinition\Annotation as Soap;
/**
* User
*
* @ORM\Table(name="User")
* @ORM\Entity(repositoryClass="My\OwnBundle\Repository\UserRepository")
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @Soap\ComplexType("int", nillable=false)
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=20
* @Soap\ComplexType("string", nillable=false)
* @Assert\NotBlank()
*/
private $name;
}
注意,第二班級有額外的註解從Besimple。
在大多數發佈實體的包中,可以設置自定義實體類以在配置中使用。你有沒有檢查這種可能性? – Wilt
您是否嘗試從其他用戶類擴展一個用戶類,如下所示:class User BaseUser –
@Wilt否,沒有這種可能性。 – Astaroth