[在尝试在我的课程中设置“ logger”属性时收到以下错误。
ReflectionException:给定的对象不是该类的实例方法在
中声明
public function testCheckForRecentActivity()
{
self::bootKernel();
$plan = new \ReflectionClass('AppBundle\Services\Courses\Revision0');
$logger = $plan->getMethod('setLogger');
$logger->setAccessible(true);
$logger->invoke($plan, static::$kernel->getContainer()->get('logger.golf'));
// ....
}
类的层次结构看起来像这样:
class Revision0 extends Base
abstract class Base extends Plans\PlanBase
使用abstract class PlanBase
(LoggerTrait
)的[use LoggerTrait;
LoggerTrait
看起来像:
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @required
* @param LoggerInterface $logger
*/
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
我是否缺少某些东西阻止我在测试中设置记录器?
ReflectionMethod->invoke()
调用中的第一个参数是错误的。它应该是'AppBundle\Services\Courses\Revision0'
的实例。另请参见此处:https://www.php.net/manual/de/reflectionmethod.invoke.php