Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Centralize Input/Output and Data Class Logic in Metadata

Abierto
#7,907 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Cafeine42 ya está trabajando en esto.

Desde el 21/6/2026.

  • #7908 de @Cafeine42 — cerrado sin fusionar
  • #8338 de @Cafeine42 — abierto
  • #8403 de @Cafeine42 — cerrado sin fusionar
  • #8404 de @Cafeine42 — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
php

Línea de trabajo

Empieza comparando la lógica de fallback en ObjectMapperProvider, SerializerContextBuilder y OpenApiFactory con las clases Metadata, Operation y ApiResource. Determina cómo debería centralizarse el comportamiento de los datos de entrada, salida y las clases de datos opcionales; después, verifica que los consumidores afectados utilicen fallbacks coherentes y que la decisión sobre la compatibilidad o el release esté documentada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Currently, across the codebase (e.g., in ObjectMapperProvider, SerializerContextBuilder, OpenApiFactory), we frequently encounter the pattern of checking for a custom input/output class and falling back to the resource class if not defined:

$class = $operation->getInput()['class'] ?? $operation->getClass();
// or
$class = $operation->getOutput()['class'] ?? $operation->getClass();

To simplify the codebase and avoid repetitive logic, I propose introducing helper methods directly in the Metadata (and thus Operation and ApiResource) classes to handle these fallbacks.

Proposed Changes

The idea is to add the following methods:

  1. getInputClass(): ?string: Returns the custom input class if defined, otherwise falls back to getClass().
  2. getOutputClass(): ?string: Returns the custom output class if defined, otherwise falls back to getClass().
  3. getDataClass(): ?string: (Optional/For discussion) A method to handle the mapped entity class with a similar fallback mechanism, specifically useful when working with DTOs and Data Mappers.
Benefits
  • Dry Code: Centralizes the logic in one place.
  • Simplification: Reduces boilerplate in providers, processors, and factories.
  • Consistency: Ensures the fallback logic is applied identically everywhere.
Considerations

This changes metadata handling significantly. Cleaner API, but assess whether it requires a major (breaking) release or can remain optional.

Lenguaje dominante
PHP
Estrellas
2.6k
Forks
987
Merge medio
1 d 10 h
PR fusionados (30 d)
76

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de api-platform/core

Todos los issues de api-platform/core

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.