我正在尝试为typo3构建一个sf2连接器。
问题是两者都使用Psr/Logger/Interface
并且都将它们保存在不同的文件夹中。
虽然拼写错误的路径Psr
紧密绑定在Core( * sigh * ),但symfony2直接在类缓存中定义,我不想停用它表现原因。
所以问题是:
if (!class_exists('\Namespace\of\that\class\ThatClass')) { ...
将所有类定义包装在symfony2类缓存中?更新 到目前为止,我通过从使用LoggerInterface的symfony类映射中排除类来解决它。
我是通过覆盖AppKernel中的doLoadClassCache方法来实现的。 然而,这更像是一个Workarround:
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);
}
}