Doctrine을 통해서가 아니라 데이터베이스를 직접 모델링하고 싶습니다. 내 개체를 정의하는 가장 좋은 방법은 무엇입니까?Doctrine 2에서 엔티티를 정의하는 가장 좋은 방법은 무엇입니까
데이터베이스에서 엔티티를 만들면 데이터베이스를 바꿀 때마다 다시 작성되기 때문에 변경할 수 없습니다.
내가이 안녕과 같이 definie 선택이
<?php
/* entity code generated */
class MyEntityBase
{
private $id;
private $title;
function getTitle()
{
return $this->title()
}
}
class MyEntity extends MyEntityBase
{
function getTitle()
{
return trim($this->title());
}
}
과 같이 정의 할 좋아합니다. 나는 그것을 훨씬 쉽게 관계와 협력하게하기 때문에 매핑 기능의 교리를 사용하여 조언을 것이지만,이처럼 엔티티를 정의 아무 문제가 없습니다이
class Article
{
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
/** @Column(type="string") */
private $title;
function setTitle($title)
{
$this->title = $title;
}
function __construct() {
// $this->comments = new ArrayCollection();
}
}
$article = $em->find('Article', 1);
나는 나의 목표를 정의하기 위하여 나의 포스트를 편집했다. 나는 당신이 "매핑 기능 교리를 사용하여 조언을 사용하는 것"이라는 의미를 이해하지 못합니다. – catalinux
당신은 무엇을 의미합니까? "귀하의 모델에서 데이터베이스 구조를 설명하는 것은 데이터베이스 서버와 실제로 동기화 할 필요가 없다는 것을 의미합니다. 그것은 단지 교리가 엔티티가 가지고있는 속성과 메소드를 알기위한 방법 일뿐만 아니라 선택적으로 모델을 데이터와 동기화하거나 모델을 데이터와 동기화하십시오. – catalinux
음 ... 코드에서 MetaDrivers로 모델을 완벽하게 문서화 할 수 있지만 데이터베이스를 모델링 할 때 실제로 사용할 필요는 없습니다. 모델에서 정의한 MetaData에서 실제로 DB를 생성하지 않고 DB를 수동으로 완벽하게 모델링 할 수 있습니다. – ChrisR