我正在制作一个新的Twig扩展名。
该Twig扩展接受实体对象(\AppBundle\Entity\*)
和参数名称作为参数。
public function filterNameFilter($entity, $parameter) {}
我想做的是在$entity
上键入一个类型,该类型将是Appbundle\Entity
中的类之一(可以是任何一种),并让Symfony猜测是哪个类型。
有可能吗?
答案 0 :(得分:1)
我相信这与Symfony
无关,而是与PHP
的弱类型性有关。
一种处理方法是让函数能够通过instanceof
检查其类型,但是由于每次您都需要重新调整该函数的事实,因此将其视为反模式。添加一个需要此类处理的新类。
另一种可能解决此问题的方法是识别通用接口,并让该命名空间中的所有类都实现它。这样,您可以在Twig扩展名中指定接口类型提示。可行性是否取决于您要实现的目标。
希望这能为您提供一些启示...