[英]ParamConverter: Declaration exception symfony2
我正在嘗試為我的項目(symfony 2.4)創建一個參數轉換器。這是我的轉換器:
namespace Test\ParamConvertersBundle\ProgramConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface;
use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManager;
class ProgramConverter implements ParamConverterInterface{
protected $class;
protected $repository;
public function __construct($class, EntityManager $em){
$this->class = $class;
$this->repository = $em->getRepository($class);
}
public function apply(Request $request, ParamConverter $configuration){
return true;
}
public function supports(ParamConverter $configuration){
return $this->class === $configuration->getClass();
}
}
這是使我發瘋的異常:
FatalErrorException:編譯錯誤:Test \\ ParamConvertersBundle \\ ProgramConverter \\ ProgramConverter :: apply()的聲明必須與Sensio \\ Bundle \\ FrameworkExtraBundle \\ Request \\ ParamConverter \\ ParamConverterInterface :: apply(Symfony \\ Component \\ HttpFoundation \\ Request $ request,Sensio Bundle \\ FrameworkExtraBundle \\ Configuration \\ ParamConverter $ configuration)
我沒有問題....
由Bartek回答:
使用Sensio \\ Bundle \\ FrameworkExtraBundle \\ Configuration \\ ParamConverter;
多謝 :)
這實際上是預期的行為:)看看您的apply
方法:
public function apply(Request $request, ParamConverter $configuration){
return true;
}
第二個參數類型為ParamConverter
。 由於您自己的轉換器的准確命名是假定它存在一個apply
方法,該方法具有第二個類型的參數:
namespace Test\ParamConvertersBundle\ProgramConverter\ParamConverter;
....與超級類的方法不匹配。
解決方案:嘗試重命名自己的班級,使其更加具體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.