Skip to content

Missing stub file for Symfony Form DataMapperInterface #417

Open
@roerbakei

Description

@roerbakei

Bug Report / Feature Request

When implementing the Symfony Form DataMapperInterface it will currently throw the following error:

Method  MyApp\FormType::mapDataToForms()  
         has parameter $forms with generic interface                                                                               
         Symfony\Component\Form\FormInterface but does not specify its types:                                                      
         TData     

When fixing this by defining TData for the FormInterface in the class that implements the DataMapperInterface, the type will be different from the interface resulting in an error:

   /**
    * @param Traversable<FormInterface<mixed>> $forms
    */
   public function mapDataToForms(mixed $viewData, Traversable $forms): void

Note: I've typed TData of FormInterface to mixed since $forms stands for the child forms of the form which is using the data mapper and so can have multiple types.

Parameter #2 $forms (Traversable<mixed,                                                                                   
         Symfony\Component\Form\FormInterface<mixed>>) of method                                                                   
         MyApp\FormType::mapDataToForms()  
         should be contravariant with parameter $forms (Traversable<mixed,                                                         
         Symfony\Component\Form\FormInterface>) of method                                                                          
         Symfony\Component\Form\DataMapperInterface::mapDataToForms()           

Unless I'm missing something it looks that a stub for Symfony Form DataMapperInterface is not provided yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions