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

[RFC]: Mark PhpDb\Sql abstract classes and interfaces @api or @internal

Abierto
#214 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
66/100
Tipo de issue
Documentación
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
php

Línea de trabajo

Ejecuta mago analyze --ignore-baseline src/Sql (después de aplicar la tipificación de docblock #204) para listar los 16 hallazgos missing-api-or-internal, y añade docblocks @api a cada interfaz y clase abstracta con nombre bajo src/Sql. Para la propuesta 3, localiza AbstractSql y comprueba los sitios de llamada de sus métodos protegidos para decidir cuáles son @internal. Se da por terminado cuando la ejecución del analyze informe cero hallazgos y la entrada del baseline se haya eliminado.

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

Descripción

RFC
Proposed Version

Next minor

Basic Information

Mago reports 16 missing-api-or-internal findings in src/Sql, all baselined. Each one is an abstract class or interface without an @api or @internal annotation:

  • Abstract classes: AbstractSql, AbstractPreparableSql, AbstractExpression, Ddl\Column\{AbstractLengthColumn, AbstractPrecisionColumn, AbstractTimestampColumn}, Ddl\Constraint\AbstractConstraint, Ddl\Index\AbstractIndex
  • Interfaces: SqlInterface, PreparableSqlInterface, ExpressionInterface, ArgumentInterface, PredicateInterface, Platform\PlatformDecoratorInterface, Ddl\Column\ColumnInterface, Ddl\Constraint\ConstraintInterface
Background

These are the types the driver packages and applications build on: decorators extend the statement classes through AbstractSql and AbstractPreparableSql, and implement PlatformDecoratorInterface (see #175). Metadata marked its source classes @api.

Considerations
  • The annotations are documentation only, with no runtime effect.
  • @api commits to keeping a type's public and protected surface stable within a minor release. @internal tells consumers not to depend on it.
Proposal(s)
  1. Mark every interface above @api.
  2. Mark the abstract classes @api, since drivers extend them.
  3. Mark protected methods of AbstractSql that only the library itself calls @internal, so they can change without a major release.
Appendix/Additional Info

Finding counts are from mago analyze --ignore-baseline src/Sql once the docblock typing in #204 is applied.

Lenguaje dominante
PHP
Estrellas
18
Forks
8
Merge medio
6 d 11 h
PR fusionados (30 d)
14

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

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 php-db/phpdb

Todos los issues de php-db/phpdb

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.