2013-02-28 4 views
2

Мне нужно внести некоторые изменения в Doctrine \ Common \ Persistence \ Mapping \ Driver \ Annotation :: getAllClassNames, потому что Doctrine использует require_one, и я хочу, чтобы он использовал мой пользовательский автозагрузчик.Переопределить драйвер аннотации Doctrine

Мой вопрос: Как я могу рассказать Доктрине использовать мой собственный код, не меняя папку поставщика Symfony?

+0

Код 'Doctrine \ Common \ Persistence \ Mapping \ Driver \ Annotation :: getAllClassNames' не об автозагрузке, а о поиске всех файлов и их требовании. – Ocramius

+0

yes, но для этого требуется все, и если один файл уже требуется, php будет выкидывать ошибку «can not redeclare xy» – icksde

+0

извините, неправильно объяснил. У меня есть классы, которые определены дважды в разных файлах, то есть проблема здесь в require_once и рекурсивном итераторе – icksde

ответ

3

Возможно, вы сможете достичь этого, установив параметр doctrine.orm.metadata.annotation.class на имя своего класса в параметрах.ini/yml/xml.

От Doctrine/Bundle/DoctrineBundle/Resources/Config/orm.xml:

<parameter key="doctrine.orm.metadata.annotation.class">Doctrine\ORM\Mapping\Driver\AnnotationDriver</parameter> 

Я не проверял это сам, но это, как я перекрываться вещи, как это в прошлом.

+0

звучит неплохо, но когда я пытаюсь добавить это в свой yml (under doctrine -> orm), я получаю 'Unrecognizes options" метаданные "под" doctrine.orm.entity_managers.default "' – icksde

+0

ahhh ... PARAMETERS.yml .. . Большое спасибо – icksde

Смежные вопросы