어떻게 매핑 된 슈퍼 클래스를 확장해야하는지 클래스는 XML 드라이버를 말하는 가야합니까 SW?
당신은 당신은 단순히 추상 클래스를 만들 수 있습니다
을 :) 필요가 없습니다가 (이름을에게 My\First\BaseClass
를 할 수 있습니다) 및 XML에 매핑 된 슈퍼 클래스를 정의
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping
xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"
>
<mapped-superclass name="My\First\BaseClass">
<!-- fields, etc -->
</mapped-superclass>
</doctrine-mapping>
다음은 엔터티가 이 매핑 된 슈퍼 클래스를 확장합니다. 매핑 된 수퍼 클래스를 확장하는 Entity 클래스도 가질 수 있으며, 매핑 된 수퍼 클래스는 다시 다른 매핑 된 수퍼 클래스를 확장합니다.
요점은 : Doctrine은 클래스 상속을 기반으로 완전한 매핑 메타 데이터 집합을 결정하기 위해 모든 XML 매핑 파일을 탐색 할만큼 똑똑합니다. 그래프를 XML로 지정할 필요는 없습니다.
기본적으로 나에게 답변을 준 교리 사이트 중 하나에 게시물이 있습니다. 설명은 닭고기/계란 구분선 이었기 때문에 XML 레이어에서 상속을 정의 할 수있는 지원을 남겨 두었고 관계를 정의하기 위해 주석이있는 PHP를 사용해야하므로 XML 대신 주석을 사용하도록 변경했습니다. 엔티티 자체를 사용하지 않고 명령 행 도구 – Scott
에서 엔티티를 사용하는 것보다, 내가 겪고있는 문제는 '엔티티 생성'을 올바르게 수행하는 데 특정 문제가있었습니다. 이것은 xml 구성에서 지원되지 않는다고 말한 것입니다. 아마 여러분은 엔티티를 직접 만들거나 주석을 달지 않고 엔티티를 만들고 XML 설정 파일을 사용하여 스키마를 설명 할 수 있습니다. – Scott
아! 엔티티를 수동으로 만드는 것은 실제로 내가 말하고자하는 것입니다. 상속을 사용하여 엔티티를 생성하는 것은 현재 사용자가 알 수있는 것처럼 지원되지 않지만 ml을 구현하는 것에 대해 몇 가지 대화가있었습니다. –