【问题标题】:symfony2 bundle extension is not loaded after renaming the bundle重命名捆绑包后未加载 symfony2 捆绑包扩展
【发布时间】:2014-02-25 08:13:26
【问题描述】:

我创建了一个名为 PostalAddressBundle 的新包,并在其中创建了一个名为 ss_postal_address 的服务。一切正常。但我决定将包重命名为 AddressBundle 而不是 PostalAddressBundle,我重命名了所有命名空间以及与之相关的所有内容。一切正常,但服务不正常 (ss_postal_address)。

我清除了缓存,但没有任何反应..

这是 services.xml 文件的内容:

 <parameters>
        <parameter key="ss_address.entity.address.class">Skonsoft\AddressBundle\Entity\Address</parameter>
        <parameter key="ss_address.form.type.address.class">Skonsoft\AddressBundle\Form\Type\AddressType</parameter>
    </parameters>

    <services>
        <service id="ss_address.form.type.address" class="%ss_address.form.type.address.class%">
            <argument>%ss_address.entity.address.class%</argument>
            <tag name="form.type" alias="ss_postal_address" />
        </service>
    </services>

你知道如何解决这个问题吗?

谢谢

【问题讨论】:

    标签: symfony dependency-injection


    【解决方案1】:

    我解决了这个问题,但只是手动删除了缓存:

    rm -Rf ./app/cache/*
    

    symfony cache:clear 在这种情况下不做这项工作。

    【讨论】:

    • 我也遇到了类似的问题。这也是我的解决方案。但是在我的情况下,这是一个环境问题:我使用 symfony 命令清除了 dev env,但应用程序在生产环境中运行。
    • 是的,手动删除缓存目录有帮助...在我的例子中是 application_directory/var/cache
    【解决方案2】:

    您是否已相应地重命名了您的 DI 扩展?例如,一个名为 SkonsoftAddressBundle 的包应该在 Skonsoft\AddressBundle\DependencyInjection 命名空间中有一个名为 SkonsoftAddressExtension 的扩展。

    【讨论】:

    • 是的,我做到了。我检查了所有的类名、文件和命名空间。如图所示:stackoverflow.com/questions/12527019/…
    • 如果不是这样,我看不到...扩展负责加载您的服务定义(xml),所以如果这部分是唯一失败的部分,它应该是相关的。
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2012-03-28
    • 2011-11-27
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多