Я новичок в Доктрине (и вообще в ORM). Я создал несколько объектов, смоделированных после моей базы данных, и он отлично работает. Однако мне было интересно, есть ли способ расширить классы сущностей базовым классом, который имеет общие функциональные возможности. Например, я могу использовать магические методы для getters и seters в базовом классе. Возможно ли это с Доктриной 2?Использовать базовый класс на доктрине 2 сущности?
Например:
/**
* Country
*
* @Table(name="country", uniqueConstraints={@UniqueConstraint(name="country_id", columns={"country_id"})})
* @Entity
*/
class Country extends MyBaseClass
{
/**
* @var integer
*
* @Column(name="country_id", type="integer")
* @Id
* @GeneratedValue
*/
protected $id;
/**
* @var string
*
* @Column(name="code", type="string", length=2, nullable=true)
*/
protected $code;
/**
* @var string
*
* @Column(name="name", type="string", length=75, nullable=true)
*/
protected $name;
}
class MyBaseClass {
public function doSomething($var) {
return $this->$var;
}
}
Несомненно. Объекты Doctrine 2 - это просто старые php-объекты. Продлите. Хотя я был немного осторожен в использовании __get, так как это может сломать ленивую загрузку. – Cerad