php / php/php-src

ReflectionClass can't detect readonly properties for mysqli

Abierto
#15,309 8 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Extension: mysqli Feature Status: Needs Triage
Lenguaje dominante
C
Estrellas
40.4k
Forks
8.2k
Merge medio
2 d 13 h
PR fusionados (30 d)
96

Descripción

Description

The following code:

<?php
$reflection = new ReflectionClass(mysqli::class);
$props = [];
foreach ($reflection->getProperties() as $property) {
    $props[] = $property->getName() . ' | readonly: ' . (int) $property->isReadOnly();
}
print_r($props);

Resulted in this output:

Array
(
    [0] => affected_rows | readonly: 0
    [1] => client_info | readonly: 0
    [2] => client_version | readonly: 0
    [3] => connect_errno | readonly: 0
    [4] => connect_error | readonly: 0
    [5] => errno | readonly: 0
    [6] => error | readonly: 0
    [7] => error_list | readonly: 0
    [8] => field_count | readonly: 0
    [9] => host_info | readonly: 0
    [10] => info | readonly: 0
    [11] => insert_id | readonly: 0
    [12] => server_info | readonly: 0
    [13] => server_version | readonly: 0
    [14] => sqlstate | readonly: 0
    [15] => protocol_version | readonly: 0
    [16] => thread_id | readonly: 0
    [17] => warning_count | readonly: 0
)

But I expected this output instead:

Array
(
    [0] => affected_rows | readonly: 1
    [1] => client_info | readonly: 1
    [2] => client_version | readonly: 1
    [3] => connect_errno | readonly: 1
    [4] => connect_error | readonly: 1
    [5] => errno | readonly: 1
    [6] => error | readonly: 1
    [7] => error_list | readonly: 1
    [8] => field_count | readonly: 1
    [9] => host_info | readonly: 1
    [10] => info | readonly: 1
    [11] => insert_id | readonly: 1
    [12] => server_info | readonly: 1
    [13] => server_version | readonly: 1
    [14] => sqlstate | readonly: 1
    [15] => protocol_version | readonly: 1
    [16] => thread_id | readonly: 1
    [17] => warning_count | readonly: 1
)
PHP Version

PHP 8.3.8

Operating System

No response

Guía de contribución

Abrir la 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.

Línea de trabajo

Empieza reproduciendo el ejemplo de ReflectionClass y mysqli::class del informe en PHP 8.3.8 y, a continuación, rastrea cómo se exponen las propiedades de mysqli a la reflexión. Se considera terminado cuando las propiedades enumeradas informen readonly: 1, con cobertura de regresión para este comportamiento.

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

Evaluación

Stack tecnológico
c, php
Área
backend, databases
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.