PHP und seine Freunde

PHP und seine Freunde

phpWie gut kennst Du PHP? Hast Du damit schon objektorientiert gearbeitet oder benutzt Du PHP nur um HTML dynamischer zu machen? Welchen Editor benutzt Du, um damit zu programmieren und womit beziehst Du nötige Pakete? Ehrlich gesagt habe ich bisher noch nie eine besondere Verbindung zu PHP gehabt. Meine letzten Zeilen Code in PHP liegen mehrere Jahre zurück.

 

Als ich vor kurzem wieder damit in Berührung gekommen bin, habe ich ein paar Parallelen ziehen wollen und habe versucht herauszufinden welche Möglichkeiten es gibt, sich das Leben mit PHP leichter zu machen. Als Vergleichssprachen mit samt Tooling dienen mir Python und Java, mit diesen Sprachen habe ich mich in den letzten Jahren tiefer beschäftigt.

Vergleichstechnologien

Aber wie erstellt man heutzutage ein Projekt mit PHP und und welche Möglichkeiten gibt es schnell und unkompliziert ans Ziel zu kommen. Mit dieser Fragestellung habe ich mich beschäftigt und bin auf ein interessantes Werkzeug gestoßen. Für jeden PHP-Entwickler sicher gang und gäbe, für mich dafür umso überraschender.

In der Java Welt habe ich sehr viel mit Gradle und Maven zu tun gehabt und mit der Zeit auch sehr zu schätzen gelernt, da ich erst nach dem Studium mit diesen Technologien in Berührung gekommen bin. Da ich mich so sehr daran gewöhnt habe, sehr Einfach Pakete mit Hilfe von Gradle nachzuladen, habe ich mich gefragt, ob es in der PHP Welt so etwas ähnliches existiert.

In Python war ich auch sehr verwöhnt, da es mit „easy_install“ und PIP zwei Hilfsmittel existieren, um sehr einfach Pakete nachzuladen und um Python damit durch zahlreiche Bibliotheken bequem zu erweitern.

Composer und Packagist

Nach kurzer Recherche bin ich bei PHP auf Composer gestoßen. Ein Werkzeug, welches es ermöglich PHP Bibliotheken sehr einfach und unkompliziert nachzuladen. Das einzige, was man dazu braucht ist eine JSON-Datei in der man angibt, welche Bibliotheken man für ein Projekt benötigt. Mittels Composer ist es im zweiten Schritt möglich auf der Konsole Befehle abzusetzen und die in der JSON-Datei ausgezeichneten Pakete zu beziehen. Das hat mich sehr beeindruckt, da ich nicht dachte, dass es so etwas in der PHP Welt gibt. WOW, Composer mach mir bisher das Leben sehr einfach und weitere abhängige Pakete werden automatisch nachgeladen. Zusätzlich werden innerhalb des Projekts die Bibliotheken aufgelöst und man muss sich nicht drum kümmern die Bibliotheken im Projekt zu velinken, da das automatisch per autoloading out of the box funktioniert. Mit Packagist existiert eine Websuche, mit der man Pakete für Composer unkompliziert finden kann und das JSON Snippent zum Einbinden nur rauskopiert werden muss.

PHPDoc

Sehr interessant und nicht nur als Dokumentationswerkzeug zu betrachten ist PHPDoc, welches sich an JavaDoc anlehnt. PHPDoc kann aber mehr als nur reine Dokumentation. Es unterstützt den Entwickler dabei, bereits vor der Ausführung von Code Fehler zu entdecken. Die genutzte IDE in meinem Fall PHPStorm, kann die DOC-Anweisungen interpretieren und Warnungen anzeigen. Zum Beispiel kann eine Variable mit einem Typ gekennzeichnet werden. Wenn das zugewiesenes Objekt nicht mit der DOC Anweisung übereinstimmt, können Fehler aufgespürt und ggf. darauf hingewiesen werden, dass der Typ nicht passt. Das kann dem Entwickler das Leben wirklich erleichtern und vor der Auslieferung von produktiven Code können offensichtliche Fehler beseitigt werden. Das alles obwohl PHP im Grunde dynamisch und auch gleichzeitig schwach typisiert ist.

Diese zusätzlichen Metainformationen empfinde ich als unheimlich wertvoll und sollten immer genutzt werden. Wobei ich die Gefahr darin sehe, dass der Code aufgebläht wird und am Ende in einer Klasse mehr PHPDoc Code steht, als diese an Funktionalität beschreiben möchte.

Welche Erfahrungen hast Du mit PHP in letzter Zeit gemacht? Können diese Erfahrungen anderen Entwicklern helfen. Bitte hinterlasse hier Anmerkungen und Kommentare, Du bist herzlich eingeladen Deine Meinung zu hinterlassen.


Composer (Quelle)
Packagist (Quelle)
PHPDoc (Quelle)
Gradle (Quelle)
PIP (Quelle)
PHP und Typisierung (Quelle)

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.