Warum Open Source nicht beängstigend, sondern vorteilhaft ist?
\n\nHaben Sie jemals auf das Repository eines großen PHP-Projekts geschaut und gedacht: „Da sind nur Gurus, ich traue mich nicht einmal, dort reinzuschauen“? Ein bekanntes Gefühl. Aber die Wahrheit ist, dass Open-Source-Beiträge nichts mit Superhelden mit 20 Jahren Erfahrung zu tun haben. Es geht um normale Entwickler, die eines Tages beschlossen haben: „Warum eigentlich nicht?“.
\n\nLassen Sie uns klären, warum Sie das überhaupt brauchen. Erstens ist zu PHP beizutragen der beste Weg, um Ihre Fähigkeiten zu verbessern. Sie lesen fremden Code, verstehen Architekturen und lernen, so zu schreiben, dass Ihr Code nicht im Code-Review abgelehnt wird. Zweitens ist es ein Portfolio. Arbeitgeber lieben Kandidaten, die Sterne auf GitHub haben. Und drittens ist es einfach schön zu wissen, dass Ihr Code von tausend (vielleicht sogar einer Million) Entwicklern weltweit genutzt wird.
\n\nAber die größte Angst eines Anfängers: „Ich schreibe Unsinn und werde ausgelacht“. Spoiler: Sie werden nicht ausgelacht. In der PHP-Open-Source-Community ist es üblich, Anfängern zu helfen. Sie werden korrigiert, aber höflich. Die Hauptsache ist, anzufangen.
\n\nWo anfangen? Ein Projekt auswählen
\n\nSie müssen nicht sofort in Symfony oder Laravel einsteigen. Wählen Sie etwas Einfacheres. Das ideale erste Projekt ist eine Bibliothek oder ein Paket, das Sie selbst verwenden. Öffnen Sie Ihre composer.json und schauen Sie sich die Abhängigkeiten an. Sicherlich gibt es dort etwas Kleines: einen Markdown-Parser, eine Bibliothek für die Arbeit mit Daten oder einen einfachen HTTP-Client.
Hier sind einige Kriterien für die Auswahl:
\n\n- \n
- Aktivität des Projekts: Der letzte Commit ist nicht älter als 3 Monate. Sonst riskieren Sie, ins Leere zu schreiben. \n
- Vorhandensein von Issues mit dem Label "good first issue": Das ist eine Goldgrube für Anfänger. Viele PHP-Projekte kennzeichnen speziell einfache Aufgaben. \n
- Verständliche README: Wenn in der Dokumentation steht, wie man Tests ausführt und die Umgebung einrichtet, ist das ein gutes Zeichen. \n
Gehen Sie zum Beispiel auf GitHub und suchen Sie nach PHP Open-Source-Projekten mit dem Tag good-first-issue. Dort finden Sie Hunderte von Aufgaben, die auf ihren Helden warten.
Erster Schritt: CONTRIBUTING.md lesen
\n\nIm Ernst, überspringen Sie diese Datei nicht. Darin steht normalerweise alles: von den Regeln für die Benennung von Commits bis hin zur Ausführung von Tests. Wenn Sie CONTRIBUTING.md ignorieren, könnte Ihre Arbeit allein deshalb abgelehnt werden, weil Sie das Format nicht eingehalten haben.
Typische Anforderungen in PHP-Projekten:
\n\n- \n
- Der Code muss PSR-12 (Code-Standard) entsprechen. \n
- Alle Änderungen müssen durch Tests abgedeckt sein (PHPUnit, Pest). \n
- Commits müssen signiert sein oder zumindest eine verständliche Beschreibung haben. \n
Die erste Aufgabe finden: Vom Issue zum ersten Code
\n\nAngenommen, Sie haben eine Aufgabe gefunden. Zum Beispiel gibt es in einem PHP-Projekt für die Arbeit mit JSON ein Issue: „Unterstützung für die Option JSON_THROW_ON_ERROR hinzufügen“. Klingt beängstigend? Eigentlich ist es einfach: Sie müssen ein Flag hinzufügen, damit die Funktion eine Ausnahme auslöst, anstatt null zurückzugeben.
Hier ist ein Beispiel für Code, der im Projekt sein könnte:
\n\n<?php\n\n/**\n * Parst einen JSON-String.\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('Ungültiges JSON: ' . json_last_error_msg());\n }\n return null;\n }\n \n return $data;\n}\n\n\nSehen Sie? Das ist keine Raketenwissenschaft. Sie fügen einfach einen Parameter hinzu und prüfen ihn. Eine ideale Aufgabe für einen Anfänger.
\n\nCode schreiben: Regeln des guten Tons
\n\nWenn Sie zu PHP beitragen, denken Sie daran: Ihren Code werden andere Leute lesen. Schreiben Sie so, dass er ohne Kommentare verständlich ist, aber wenn die Logik komplex ist, sind Kommentare obligatorisch.
\n\nHier ist nicht