我正在使用Command模式,并试图通过使用闭包来复制zf2样式的服务配置,以尝试在闭包内加载命令对象依赖项。例如,在我的命令工厂中:
protected function getCommandConfig(){
return [
'view-details-command' => function () {
$userFactory = new My\Model\User\Factory();
$editUserForm = new My\Form\User\Edit();
$editUserForm ->setInputFilter(new My\InputFilter\EditUser());
$command = new My\Command\ViewUserDetailsCommand($userFactory, $editUserForm);
return $command;
}
];
}
...这与ZF2在服务管理器中初始化对象的方式非常相似。但是,当我运行它时,例如$command = $this->getCommandConfig()[$commandName]
我得到一个返回的闭包对象,当我调用一个方法时,我想要成为一个命令对象引发异常("调用未定义的方法)闭合:: foobar的....&#34)。我应该怎么做才能使用这种配置? (我没有使用整个ZF2堆栈。)