如何在制作包后使用xml而不是yml

时间:2013-06-10 03:50:45

标签: symfony

Mybundle已经设置为使用services.yml

但我想使用services.xml。

所以我更改了DependacyInjection / MybundleExtension.php

#$loader->load('services.yml');     
$loader->load('services.xml');

但它说

Unable to parse in      "\/Users\/whitebear\/httproot\/mutor\/src\/Acme\/MyBundle\/DependencyInjection\/..\/Resources\/config\/services.xml" at line 1 (near "").

我的services.xml虽然,我认为它是正确的(只是从其他网站复制和粘贴)

  

<services>
    <service id="acme.demobundle.calendar_listener" class="Acme\DemoBundle\EventListener\CalendarEventListener">
        <argument type="service" id="doctrine.orm.entity_manager" />
        <tag name="kernel.event_listener" event="calendar.load_events" method="loadEvents" />
    </service>

</services>

还有其他地方需要改变吗?

1 个答案:

答案 0 :(得分:5)

您使用XmlFileLoader吗?

$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');

另外,标准xml结构包括container标记

<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        ...
    </parameters>

    <services>
        <service id="...">
        </service>
    </services>
</container>