用Zend \ Di覆盖父类

时间:2017-10-16 08:44:23

标签: php dependency-injection

我将自己介绍给依赖注入(在我的例子中是Zend \ Di)。我不知道我错了什么,但我找不到如何覆盖父类。假设我们有三个类A,B和C:

class A implements C {
...
}

class B extends A implements C {
...
}

interface C {
...
}

现在,我想创建一个自定义类D,它改变了在A:

中实现的一些功能
class D extends A {
//override A's required methods
}

我现在需要做的是,通过依赖注入,确保B从D而不是A扩展,因此它继承了这些覆盖方法。我需要通过Di配置来做到这一点,所以我觉得它应该是这样的:

<?php
return [
    'definition' => [
        'class' => [
            'My_Namespace\D' => [
                'supertypes' => ['Base_Namespace\A'] /*it needs to be an array*/
            ]
        ]
    ]
];

我在两种不同情况下对此进行测试,并且此配置不执行任何操作(B继续继承A方法)或者在调用需要B的构造函数时出错(传递的参数必须是B的实例,给定字符串)

我做错了什么?

0 个答案:

没有答案