Rendered XML/JSON documentation is inconsistent and incomplete
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 50/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- php
- Área
- documentation
Línea de trabajo
Start with ide-json/array_key_first.json and its corresponding XML output, then trace how the renderer handles return types and parameter initializers. Compare array_key_first, str_pad, and stream_socket_server against their source documentation. Done means the rendered JSON and XML preserve union return types and initializer values consistently.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
It looks like the rendered JSON/XML files are missing some cruicial information.
For example, array_key_first has a return type of int|string|null.
Looking at ide-json/array_key_first.json:
{
"name": "array_key_first",
"purpose": "Gets the first key of an array",
"manualid": "function.array-key-first",
"version": "PHP 7 >= 7.3.0, PHP 8",
"params": {
"array": {
"name": "array",
"type": "array",
"optional": "false",
"description": "..."
}
},
"currentParam": null,
"return": {
"type": "null",
"description": "..."
}
}
We can see the return type is simply null. This is also the case in the xml version:
<?xml version="1.0" encoding="UTF-8"?>
<function>
<name>array_key_first</name>
<purpose>Gets the first key of an array</purpose>
<manualid>function.array-key-first</manualid>
<version>PHP 7 >= 7.3.0, PHP 8</version>
<params>
<param>
<name>array</name>
<type>array</type>
<optional>false</optional>
<description><![CDATA[<p class="para">
An array.
</p>]]></description>
</param>
</params>
<return>
<type>null</type>
<description>...</description>
</return>
</function>
This inconsistency / incompleteness can also be observed with the initializer of default parameters.
For example, the str_pad function:
{
"name": "str_pad",
"purpose": "Pad a string to a certain length with another string",
"manualid": "function.str-pad",
"version": "PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8",
"params": {
"string": {
"name": "string",
"type": "string",
"optional": "false",
"description": "..."
},
"length": {
"name": "length",
"type": "int",
"optional": "false",
"description": "..."
},
"pad_string": {
"name": "pad_string",
"type": "string",
"optional": "true",
"initializer": "\" \"",
"description": "..."
},
"pad_type": {
"name": "pad_type",
"type": "int",
"optional": "true",
"description": "..."
}
}
}
We can see there is an initializer for pad_string but no initializer value for pad_type.
I had a quick look at the implementation and I think this is due to the fact that pad_type has an initializer of <constant>STR_PAD_RIGHT</constant> instead of just the text STR_PAD_RIGHT.
Another example would be stream_socket_server where the initializer is just the literal text STREAM_SERVER_BIND | STREAM_SERVER_LISTEN:
{
"name": "stream_socket_server",
"purpose": "Create an Internet or Unix domain server socket",
"manualid": "function.stream-socket-server",
"version": "PHP 5, PHP 7, PHP 8",
"params": {
"address": {
"name": "address",
"type": "string",
"optional": "false",
"description": ""
},
"error_code": {
"name": "error_code",
"type": "int",
"optional": "true",
"description": ""
},
"error_message": {
"name": "error_message",
"type": "string",
"optional": "true",
"description": ""
},
"flags": {
"name": "flags",
"type": "int",
"optional": "true",
"initializer": "STREAM_SERVER_BIND | STREAM_SERVER_LISTEN",
"description": ""
},
"context": {
"name": "context",
"type": "null",
"optional": "true",
"description": ""
}
}
}
I do wonder if this is a known limitation of the current renderer and if there is any current effort of fixing this?
- Lenguaje dominante
- PHP
- Estrellas
- 91
- Forks
- 59
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de php/phd
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
-
Can <subtitle> not be used?Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
-
Half of `doc-pl` is all boldAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Issues similares
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
bug Feature: Kiosk
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Infrastructure: actions Module: zmscitizenapi Module: zmsentities php Type: Bug unit tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
it-at-m/eappointment#3480 ·
Los mantenedores suelen responder en 1 día
-
HttpClient
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
CI: composer install fails — league/flysystem 1.x blocked by security advisory GHSA-cxf4-7mrp-vvprAbiertodevops type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día