【发布时间】:2014-02-21 10:14:27
【问题描述】:
例如我有这个实体。
<?php
namespace AcmeDemo\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Test
*
* @ORM\Table(name="test")
* @ORM\Entity
*/
class Test implements IEntity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
这就是界面。
<?php
namespace AcmeDemo\UserBundle\Entity;
interface IEntity
{
public function getId();
}
然后我可以通过检查对象
$object = new Test();
if ($object instanceof IEntity) {
echo 'Yes, its an entity.';
} else {
echo 'No entity detected!';
}
但如果我没有声明接口,我就不能这样做。 并且在每个实体上定义 IEntity 也是不好的。
我能做什么来代替上面的例子?
在此先感谢您! :)
【问题讨论】:
-
为什么你认为在每个实体上定义 IEntity 是不好的?如果你不想使用Interface,我认为这是一个很好的解决方案
-
为什么不想使用接口?
标签: symfony doctrine-orm doctrine entity symfony-2.3