libxml2 не может загрузить метаданные сущности Doctrine

У меня действительно странная проблема с Доктриной. Не удается загрузить метаданные для конкретной сущности. Все остальные мои объекты загружаются нормально, но когда я пытаюсь загрузить следующий 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">

<entity name="Foo\ContentBundle\Entity\Item" table="content_item">
<id name="id" column="id" type="integer">
<generator strategy="AUTO" />
</id>

<field name="gid" column="gid" type="string" nullable="false" unique="false" />
<field name="url" column="url" type="string" nullable="true" unique="false" />
<field name="title" column="title" type="string" nullable="false" unique="false" />
<field name="content" column="content" type="text" nullable="false" unique="false" />
<field name="timestamp" column="timestamp" type="datetime" nullable="false" unique="false" />

<many-to-one field="feed" target-entity="Foo\ContentBundle\Entity\Feed">
<join-column name="feed" referenced-column-name="id" nullable="false" on-delete="CASCADE" />
</many-to-one>
</entity>

Выдает следующее исключение:

Invalid mapping file 'Foo.ContentBundle.Entity.Item.orm.xml' for class 'Foo\ContentBundle\Entity\Item'.

и libxml2 выдает мне следующую ошибку:

failed to load external entity "/Users/ramon/Development/foo/src/Foo/ContentBundle/Resources/config/doctrine/Item.orm.xml"

Странная вещь, все мои другие сущности в порядке! У кого-нибудь есть идеи как это исправить?

Я использую libxml версии 2.9.0, Doctrine ORM версии 2.4.7 и Symfony версии 2.6, а также PHP 5.6.5.

[править] Забыл лучшую часть: это происходит только тогда, когда я загружаю метаданные для извлечения сущности из хранилища. Не тогда, когда я вставляю сущность в хранилище.

Кроме того, когда я пытаюсь загрузить файл вручную, используя simplexml_load_file это работает отлично.

1

Решение

И я нашел причину.

Я использую другую библиотеку (picoFeed) который вызывает libxml_disable_entity_loader(true) функция, которая в свою очередь вызывает известная ошибка. Я сейчас создал тянуть запрос для picoFeed, который включает загрузчик объектов после проверки безопасности. Это устраняет проблему, описанную выше.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]