Symfony 从类缓存中排除某些类

Symfony 从类缓存中排除某些类,symfony,caching,typo3,Symfony,Caching,Typo3,我正试图建立一个sf2连接器。 问题是两者都在使用Psr/Logger/Interface,并且都将它们保存在不同的文件夹中 虽然typo的路径Psr紧密绑定在核心(*sigh*),但symfony2直接在类缓存中定义了它,出于性能原因,我不想停用它 因此,问题是: 或者:如何防止Symfony2在其类缓存中使用某些类 或者:如果(!class_存在('\Namespace\of\that\class\ThatClass'){…,我如何在symfony2类缓存中用包装所有类定义 更新: 到目

我正试图建立一个sf2连接器。 问题是两者都在使用
Psr/Logger/Interface
,并且都将它们保存在不同的文件夹中

虽然typo的路径
Psr
紧密绑定在核心(*sigh*),但symfony2直接在类缓存中定义了它,出于性能原因,我不想停用它

因此,问题是:

  • 或者:如何防止Symfony2在其类缓存中使用某些类
  • 或者:如果(!class_存在('\Namespace\of\that\class\ThatClass'){…,我如何在symfony2类缓存中用
    包装所有类定义
更新: 到目前为止,我通过从使用LoggerInterface的symfony类映射中排除类来解决这个问题

我通过覆盖AppKernel中的doLoadClassCache方法来实现这一点。 然而,我认为这更像是一种工作:

protected function doLoadClassCache($name, $extension)
{
    if (!$this->booted && is_file($this->getCacheDir().'/classes.map')) {
        $classes = array_filter(include($this->getCacheDir().'/classes.map'), function($item) {
            return (strpos($item, 'Monolog') === false);
        });
        ClassCollectionLoader::load($classes, $this->getCacheDir(), $name, $this->debug, false, $extension);
    }
}

真正失败的是什么?通常情况下,自动加载器应该堆叠,因此该类应该由第一个自动加载器加载,而不是更多。您是否尝试过TYPO3 7.2(master)和composer?不,是Typo 6.10。*我想。