コントローラーに Factory を実装しようとしています:
class NumberControllerFactory implements FactoryInterface{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
return new NumberController($container->get(Bar::class));
}
public function createService(ServiceLocatorInterface $services)
{
return $this($services, NumberController::class);
}
}
エラーが発生しました:
Fatal error: Declaration of Number\Factory\NumberControllerFactory::__invoke() must be compatible with Zend\ServiceManager\Factory\FactoryInterface::__invoke(Interop\Container\ContainerInterface $container, $requestedName, array $options = NULL) in C:\xampp\htdocs\MyProject\module\Number\src\Number\Factory\NumberControllerFactory.php on line 10
Zend 3でサービスマネージャーがコントローラーから削除されたため、モデルをコントローラーに注入したいので、これが必要です。
https://framework.zend.com/manual/2.4/en/ref/installation.htmlに記載されているスケルトンを使用しました
composer.json は次のとおりです。
"require": {
"php": "^5.6 || ^7.0",
"zendframework/zend-component-installer": "^1.0 || ^0.3 || ^1.0.0-dev@dev",
"zendframework/zend-mvc": "^3.0.1",
"zfcampus/zf-development-mode": "^3.0"
},
この問題がわかりません。たとえば、次のような多くのチュートリアルを読みました。
https://zendframework.github.io/zend-servicemanager/migration/
助けていただけますか?
現在、このメソッドは Zend\ServiceManager\Factory\FactoryInterface::__invoke と互換性があると思います