2013-05-09 2 views
0

레일스의 모델은 관계를 제외한 필드 정의를 포함하지 않으며, 레일스는 데이터베이스에서 가져옵니다. 교리 내가 접근 쓰기, 엔티티 클래스를 만들고 그 안에 필드를 설명 할 필요가 2 사용Doctrine Entities on the fly

내가 엔티티를 할 수있는, 내가 레일에서와 같은 방법으로 교리에 새로운 해요?

답변

1

아니오, 아는만큼 멀지 않습니다. 그리고 나에게는 나쁜 습관 인 것 같습니다 (레일스에서는 프로토 타이핑에 좋지만 다른 모든면에서는 좋지 않습니다). 그러나 먼저 데이터베이스를 만든 다음 대부분을 교리에 대한 모델 구성으로 리버스 엔지니어링 할 수 있습니다. http://docs.doctrine-project.org/en/2.0.x/reference/tools.html#reverse-engineering

Doctrine의 작동 방식은 실제로 모델과 필드가 구성 및/또는 코드가 두 가지 이유로 적합합니다.

코드에서 사용자가 가지고있는 데이터와 사용 방법을 코드에서 볼 수 있으며이 데이터를 사용하여 문서를 생성 할 수도 있습니다. 필자는 긴 수명 프로젝트에서 가장 중요한 측면 중 하나는 가독성입니다.

성능면에서도 좋습니다. 항상 그렇지만 특히 더 최적화 된 언어와 더 많은 최신 버전의 PHP에서 더욱 그렇습니다.

+0

> 그러나 먼저 데이터베이스를 만든 다음 doctrine의 모델 구성으로 대부분 리버스 엔지니어링 할 수 있습니다. <빌드를 되돌릴 수 있고이 역 버전을 확장 할 수 있습니까? – DmitryR

+0

네, 그렇게 할 수 있습니다. 나는 모든 것을 제대로 역 설계 할 수 없으며 매번 수동으로 (또는 dotrines 기능을 확장해야하는) 구성에 대한 모든 패치를 권장하지 않습니다. DB에 yaml 또는 docblocks를 작성하는 방법을 배우는 데 2 ​​시간이 걸리지 않는 이유는 모르겠다. 릴레이션의 경우 DB에서 제약 조건과 테이블을 직접 생성하는 것과 비교할 때 많은 시간을 절약합니다. – Clarence