Simplify slice 1l: PatternContext takes StyleResolver instead of three forwarding closures

Cerrado Apto para principiantes
#4,874 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #4960 de @chubes4 — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
php
Área
backend

Línea de trabajo

Lee Patterns/PatternContext.php y HtmlCompilation.php alrededor de los dos puntos de creación. Sustituye los tres closures de reenvío por la dependencia StyleResolver y actualiza ambas llamadas, conservando los valores predeterminados null existentes. Comprueba los puntos de creación de pruebas enumerados para ver si hay argumentos posicionales y, después, ejecuta las gates de php-transformer; se considera terminado cuando la salida es idéntica byte a byte y hay menos líneas netas.

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

Descripción

Part of #4368. A follow-up to #4723 (PatternContext takes DisclosureControlPresentation).

Problem

Patterns/PatternContext still takes three optional closures that only forward to StyleResolver. HtmlCompilation builds each of them twice, which makes 6 closures:

PatternContext param Forwards to createPatternContext() (positional, about lines 3978 to 3987) createProbePatternContext() (named, about lines 4074 to 4077)
authoredIconColor authoredInheritedPropertyWinner($el, 'color') yes yes
sourceElementVisuallyClipped isVisuallyClippedBox($el) yes yes
socialPresentationDeclarations resolvedPresentationDeclarations($el) yes yes

Change

  1. PatternContext replaces those three ?Closure params with one ?StyleResolver $styles = null (Style/StyleResolver), placed where authoredIconColor is now.
    • authoredIconColor(), sourceElementVisuallyClipped() and socialPresentationDeclarations() delegate to $this->styles, keeping today's null defaults: '', false and [].
    • Delete the three fields and their @param lines.
  2. Update both construction sites in HtmlCompilation. The first one is positional, so pass $this->styleResolver in the old authoredIconColor slot and drop the other two closure arguments, keeping every remaining argument in order. Alternatively, switch that call to named arguments.
  3. Test construction sites: tests/unit/pattern-recognizer-registry.php, pattern-registry-staged-dispatch.php, button-link-dispatcher.php, flow-container-element-converter.php and tests/contract/run.php. Check them all: none passes these three params today, so they should need no changes. If any passes positional arguments past authoredIconColor, update it.

Read only HtmlCompilation.php (lines 3920 to 4080), Patterns/PatternContext.php and the test files listed above.

Acceptance

  • Byte-identical output; the php-transformer gates pass.
  • Net lines go down.
  • The PR body reports closures removed (6) and net lines.

AI assistance: scoped by Claude Opus (Anthropic) via Pi/Roadie.

Lenguaje dominante
PHP
Estrellas
25
Forks
3
Merge medio
2 h 23 min
PR fusionados (30 d)
942

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 Automattic/blocks-engine

Todos los issues de Automattic/blocks-engine

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.