Contribución open source en PHP: por dónde empezar a contribuir y no volverse loco

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Por qué el open source no da miedo, sino que es beneficioso?

\n\n

¿Alguna vez ha mirado el repositorio de un gran proyecto PHP y ha pensado: «Ahí solo hay gurús, ni siquiera me atrevo a mirarlo»? Es una sensación familiar. Pero la verdad es que la contribución open source no es cosa de superhéroes con 20 años de experiencia. Se trata de desarrolladores comunes que un día decidieron: «¿Y por qué no?».

\n\n

Analicemos por qué le conviene hacer esto. En primer lugar, contribuir a PHP es la mejor manera de mejorar sus habilidades. Leerá código ajeno, comprenderá la arquitectura y aprenderá a escribir de manera que su código no sea rechazado en la revisión. En segundo lugar, es un portafolio. A los empleadores les encantan los candidatos que tienen estrellas en GitHub. Y en tercer lugar, es simplemente agradable saber que su código es utilizado por mil (o quizás un millón) de desarrolladores en todo el mundo.

\n\n

Pero el mayor miedo de un principiante es: «Escribiré una tontería y se reirán de mí». Spoiler: no se reirán. En la comunidad open source de PHP es costumbre ayudar a los principiantes. Le corregirán, pero con amabilidad. Lo importante es empezar.

\n\n

¿Por dónde empezar? Elegir un proyecto

\n\n

No se lance directamente a Symfony o Laravel. Elija algo más sencillo. El primer proyecto ideal es una biblioteca o paquete que usted mismo utilice. Abra su composer.json y observe las dependencias. Seguro que hay algo pequeño: un analizador Markdown, una biblioteca para trabajar con fechas o un cliente HTTP simple.

\n\n

Aquí tiene algunos criterios para elegir:

\n\n
    \n
  • Actividad del proyecto: el último commit no debe tener más de 3 meses. De lo contrario, corre el riesgo de escribir en el vacío.
  • \n
  • Presencia de issues con la etiqueta "good first issue": esto es una mina de oro para principiantes. Muchos proyectos PHP marcan especialmente las tareas sencillas.
  • \n
  • README claro: si en la documentación se explica cómo ejecutar las pruebas y cómo configurar el entorno, es una buena señal.
  • \n
\n\n

Por ejemplo, entre en GitHub y busque proyectos PHP open source con la etiqueta good-first-issue. Allí encontrará cientos de tareas que esperan a su héroe.

\n\n

Primer paso: leer CONTRIBUTING.md

\n\n

En serio, no se salte este archivo. Por lo general, contiene todo: desde las reglas para nombrar commits hasta cómo ejecutar las pruebas. Si ignora CONTRIBUTING.md, es posible que su trabajo no sea aceptado simplemente porque no siguió el formato.

\n\n

Requisitos típicos en proyectos PHP:

\n\n
    \n
  • El código debe cumplir con PSR-12 (estándar de estilo de código).
  • \n
  • Todos los cambios deben estar cubiertos por pruebas (PHPUnit, Pest).
  • \n
  • Los commits deben estar firmados o al menos tener una descripción clara.
  • \n
\n\n

Buscar la primera tarea: desde el issue hasta el primer código

\n\n

Supongamos que ha encontrado una tarea. Por ejemplo, en el proyecto biblioteca PHP para trabajar con JSON hay un issue: «Añadir soporte para la opción JSON_THROW_ON_ERROR». ¿Suena aterrador? En realidad es simple: hay que añadir una bandera para que la función lance una excepción en lugar de devolver null.

\n\n

Aquí tiene un ejemplo de código que podría estar en el proyecto:

\n\n
<?php\n\n/**\n * Analiza una cadena JSON.\n *\n * @param string $json\n * @param bool $throwOnError\n * @return array|null\n */\nfunction parseJson(string $json, bool $throwOnError = false): ?array\n{\n    $data = json_decode($json, true);\n    \n    if (json_last_error() !== JSON_ERROR_NONE) {\n        if ($throwOnError) {\n            throw new \\RuntimeException('Invalid JSON: ' . json_last_error_msg());\n        }\n        return null;\n    }\n    \n    return $data;\n}\n
\n\n

¿Ve? No es ciencia espacial. Simplemente añade un parámetro y lo comprueba. Una tarea perfecta para un principiante.

\n\n

Escribir código: reglas de buena educación

\n\n

Cuando contribuye a PHP, recuerde: otras personas leerán su código. Escriba de manera que sea comprensible sin comentarios, pero si la lógica es compleja, los comentarios son obligatorios.

\n\n

Aquí no

Blogs

Book Recommendations