2014-01-03 4 views
1

Я знаю, как переопределить любую часть пакета в Symfony2. Я следовал thisSymfony2: Как переопределить файл поставщика

и он работал.

Но что, если я хочу переопределить файл в папке поставщика, которая не является частью пакета.

В моем конкретном примере мне нужно переопределить

vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php 

Возможно ли это? Спасибо за вашу помощь

ответ

1

Вы должны рассказать EntityManager, какой драйвер Metadata использовать:

<?php 
$driver = new \Doctrine\ORM\Mapping\Driver\XmlDriver('/path/to/mapping/files'); 
$em->getConfiguration()->setMetadataDriverImpl($driver); 

Вместо умолчанию XmlDriver, вы используете расширенную версию, например

<?php 
$driver = new \My\XmlDriver('/path/to/mapping/files'); 
$em->getConfiguration()->setMetadataDriverImpl($driver); 

$em в этом фрагменте является EntityManager.

Для получения дополнительной информации о том, как писать и использовать собственные реализации Metadriver, см. http://docs.doctrine-project.org/en/latest/reference/metadata-drivers.html.

+0

спасибо, я попробую, что – schingeldi

+0

@schingeldi это сработало? – Gordon

+0

К счастью, мне не пришлось пробовать. Я хотел переопределить его, потому что у меня были некоторые ошибки ввода-вывода simple_xml. Они были решены, поэтому мне это больше не нужно. Но все равно спасибо – schingeldi