我需要对这个symfony类进行更改:
Symfony\Component\Translation\MessageCatalogue
有谁知道我如何强迫Symfony使用我自己的这个类的变种?我不想篡改实际的核心文件,以防万一。
答案 0 :(得分:3)
MessageCatalogue
类不是在依赖注入容器中注册的服务,因此不能使用标准方法(类名参数/编译器传递)覆盖它。它直接用在Symfony代码中,例如new MessageCatalogue()
。
如果你真的需要覆盖它,你可以通过在类加载器中显式设置类位置来实现。类映射优先于PSR-0 / PSR-4前缀。
$loader = require __DIR__ . '/../vendor/autoload.php';
$loader->addClassMap([
'Symfony\Component\Translation\MessageCatalogue' => 'path/to/your/override.php',
]);
缺点是: