Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

10 Prinzipien der PHP-Master

by
Read Time:12 minsLanguages:

German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)

Mit der weit verbreiteten Akzeptanz von PHP ist es ganz einfach, ein Skript oder einen Ausschnitt zu finden, der das machen wird, was Sie brauchen. Leider gibt es keinen Filter dafür, was eine "gute Praxis" ist und das beim Schreiben eines PHP-Skripts nicht so gut ist. Wir brauchen vertrauenswürdige Quellen, die bewiesen haben, dass sie die Best Practices von PHP gut verstehen.

Wir brauchen PHP-Master, die uns die besten Prinzipien für eine hochwertige PHP-Programmierung zeigen.


1. Verwenden Sie PHP nur, wenn Sie es brauchen - Rasmus Lerdorf

Es gibt keine bessere Ressource für den Entwickler von PHP, um zu wissen, was PHP ist. Rasmus Lerdorf schuf 1995 PHP und seitdem hat sich die Sprache wie ein Lauffeuer in der Entwicklergemeinde verbreitet und das Gesicht des Internets verändert. Allerdings hat Rasmus PHP nicht mit dieser Absicht erstellt. PHP wurde aus der Notwendigkeit heraus entwickelt, Webentwicklungsprobleme zu lösen.

Und wie bei vielen Open-Source-Projekten, die immer beliebter wurden, war die Motivation nie philosophisch oder gar narzisstisch. Es ging lediglich darum, ein Werkzeug zur Lösung realer Webprobleme zu benötigen. 1994 waren die Optionen für WebentwicklungsWerkzeugs ziemlich begrenzt.

Sie können PHP aber nicht für alles verwenden. Lerdorf gibt als erster zu, dass PHP wirklich nur ein Werkzeug in Ihrer Werkzeugbox ist und dass sogar PHP Einschränkungen hat.

Verwenden Sie das richtige Werkzeug für den Job. Ich bin auf Unternehmen gestoßen, die sich vollständig für PHP entschieden haben und es absolut überall einsetzen, aber es war nie als Allzwecksprache gedacht, die für jedes Problem geeignet ist. Es ist am meisten zu Hause als Front-End-Skriptsprache für das Web.

Der Versuch, PHP für alles zu verwenden, ist nicht effizient und sicherlich nicht die beste Nutzung Ihrer Zeit als Webentwickler. Haben Sie keine Angst, andere Sprachen zu verwenden, wenn PHP für Ihr Projekt nicht funktioniert.


2. Verwenden Sie viele Tabellen mit PHP und MYSQL für die Skalierbarkeit - Matt Mullenweg

Niemand muss Matt Mullenwegs Autorität mit PHP in Frage stellen. Er hat (neben einer tollwütigen Community) das beliebteste Blogging-System der Welt entwickelt: Wordpress. Nach der Erstellung von Wordpress haben Matt und das Unternehmen die herausragende Wordpress.com-Website gestartet, eine kostenlose Blogging-Site, die auf der Wordpress MU-Codebasis-Blogging-Software für mehrere Blogs basiert. Zum Zeitpunkt dieses Schreibens hostet Wordpress.com über 4 Millionen Blogs, und ihre Benutzer haben heute über 140.000 Beiträge verfasst. (Weitere interessante Statistiken zur Verwendung von Wordpress.com finden Sie hier.)

Wenn jemand weiß, wie man eine Website skaliert, ist es Matt Mullenweg. Im Jahr 2006 gab Matt einen Einblick in die Datenbankstruktur von Wordpress und erklärte, warum Wordpress MU für jedes Blog eine separate MySQL-Tabelle verwendet, anstatt für alle Blogs eine riesige "monolithische" Tabelle zu verwenden.

Wir haben diesen Ansatz für MU getestet, aber festgestellt, dass es zu teuer ist, über einen bestimmten Punkt hinaus zu skalieren. Mit monolithischen Strukturen stoßen Sie basierend auf Ihrer Hardware gegen eine Wand. In MU sind Benutzer geteilt und können einfach partitioniert werden. Beispielsweise haben wir die Benutzer auf WordPress.com zwischen 4096 Datenbanken aufgeteilt, wodurch Sie sehr billig und effizient auf Hunderttausende und sogar Millionen von Benutzern und extrem hohe Verkehrszahlen skalieren können.

Durch die Migration der Tabellen können der Code und die Blogs viel schneller ausgeführt und einfacher skaliert werden. Neben starkem Caching und intelligenter Datenbanknutzung hat Matt gezeigt, dass äußerst beliebte Websites wie Facebook und Wordpress.com kein PHP mehr haben und die unglaubliche Verkehrslast bewältigen können.


3. Vertrauen Sie niemals Ihren Benutzern - Dave Child

Dave Child ist die Idee (Teehee) hinter der kürzlich umbenannten Website Added Bytes (zuvor ilovejackdaniels.com), auf der Daves hervorragende Spickzettel für viele Programmiersprachen vorgestellt wurden. Dave hat für viele Entwicklungsunternehmen in Großbritannien gearbeitet und sich als Autorität in der Programmierwelt etabliert.

Dave bietet einige weise Ratschläge, wenn es darum geht, sicheren Code in PHP zu schreiben: Vertrauen Sie Ihren Benutzern nicht. Sie könnten dich einfach verletzen.

Die Grundregel jeder Webentwicklung, und ich kann es nicht genug betonen, lautet: Vertraue niemals deinen Benutzern. Angenommen, jedes einzelne Datenelement, das Ihre Website von einem Benutzer sammelt, enthält schädlichen Code. Immer. Dazu gehören Daten, die Sie Ihrer Meinung nach mit clientseitiger Validierung überprüft haben, beispielsweise mit JavaScript. Wenn Sie das schaffen, haben Sie einen guten Start. Wenn Ihnen die PHP-Sicherheit wichtig ist, ist dieser einzelne Punkt am wichtigsten zu lernen.

Dave gibt in den Teilen eins, zwei und drei seiner Reihe "Writing Secure PHP" spezifische Beispiele für sichere Praktiken. Aber sein ultimativer Imbiss ist folgender:

Schließlich sei völlig paranoid.
Wenn Sie davon ausgehen, dass Ihre Website niemals angegriffen wird oder auf Probleme jeglicher Art stößt, sind Sie in großen Schwierigkeiten, wenn irgendwann etwas schief geht. Wenn Sie andererseits davon ausgehen, dass jeder einzelne Besucher Ihrer Website Sie erreichen möchte und Sie sich permanent im Krieg befinden, helfen Sie sich selbst, Ihre Website sicher zu halten, und sind auf den Fall vorbereitet, dass etwas schief gehen sollte.


4. Investieren Sie in PHP Caching - Ben Balbo

Ben Balbo hat für Site Point eine sehr angesehene Tutorial-Site für Entwickler und Designergeschrieben. Er ist Mitglied des Komitees der Melbourne PHP User Group und des Open Source Developers´ Club, daher weiß er ein oder zwei Dinge über die Sprache. Angesichts des Hintergrunds von Ben als PHP-Entwickler und -Trainer ist es keine Überraschung, dass er empfiehlt, etwas mehr Gedanken und Vorbereitung in das PHP-Caching zu stecken.

Wenn Sie eine geschäftige und überwiegend statische Website haben, z.B. ein Blog, die über ein Content-Management-System verwaltet wird, sind wahrscheinlich nur geringfügige Änderungen erforderlich, Sie können jedoch von enormen Leistungsverbesserungen profitieren, die sich aus einem geringen Zeitaufwand ergeben. Das Einrichten des Caching für eine komplexere Website, auf der Inhalte pro Benutzer generiert werden, z.B. ein Portal oder ein Warenkorbsystem, ist zwar etwas kniffliger und zeitaufwändiger, die Vorteile liegen jedoch weiterhin auf der Hand.

Es gibt viele verschiedene Techniken zum Zwischenspeichern in PHP, und Ben geht auf einige der größeren Techniken im Artikel ein, wie zum Beispiel:

  • zwischengespeicherte Funktionsaufrufe
  • Festlegen von Ablaufheadern
  • Downloads von Caching-Dateien im IE
  • Vorlagen-Caching
  • Cache_Lite

und viele andere. Aufgrund der Natur dynamischer Sprachen, wie PHP, ist das Zwischenspeichern wichtig, um die Teile der Seite zu speichern, auf die häufig zugegriffen wird und die sich nicht häufig ändern.


5. Beschleunigen Sie die PHP-Entwicklung mit einer IDE, Vorlagen und Snippets - Chad Kieffer

Wenn Chad Kieffer nicht gerade damit beschäftigt ist, Benutzeroberflächen zu rocken und Datenbanken zu verwalten, gibt er in seinem Blog 2 Esslöffel kompetente Ratschläge. Aufgrund des breiten Fachgebiets von Chad kann er oft das Gesamtbild erkennen, das andere Programmierer möglicherweise nicht sehen, insbesondere wenn es um den ganzheitlichen Ansatz geht, den Chad bei der Entwicklung einer Website verfolgt. Er ist auf alle Aspekte des Entwicklungsprozesses spezialisiert, daher sind alle Erkenntnisse, die er bei der Zusammenstellung eines gesamten Projekts gewinnen kann, hilfreich.

Chad glaubt, dass die Verwendung einer IDE wie Eclipse PDT (Eclipse's PHP-Entwicklungspaket) mit einer Mischung aus Vorlagen und Snippets die Bearbeitungszeit eines Projekts erheblich beschleunigen kann.

Ausgelastete Zeitpläne, lange Aufgabenlisten und Fristen erschweren es Entwicklern, sich mit einigen der erweiterten Funktionen ihrer Werkzeugs vertraut zu machen. Dies ist eine Schande, da einige Funktionen, wie z. B. Eclipse-Vorlagen, die Codierungszeit und Fehler erheblich reduzieren können.

Der gesunde Menschenverstand sagt, dass jedes Mal, wenn Sie eine Aufgabe automatisieren können, das Projekt schneller erledigt wird. Gleiches gilt für Dans Theorie. Indem Sie sich die Zeit nehmen, Vorlagen zu erstellen, die Sie immer wieder verwenden, sparen Sie viel Zeit bei der Automatisierung der sich wiederholenden Teile der Codierung.

Wenn Sie eine IDE wie Eclipse und das PDT-Paket verwenden, werden Sie feststellen, dass sich Ihre Entwicklungszeit schrittweise beschleunigt. Die IDE schließt Klammern automatisch, fügt die fehlenden Semikolons hinzu und ermöglicht Ihnen sogar das Debuggen im Editor, ohne auf den Server hochladen zu müssen.
(Chad hat ein nützliches Tutorial über den Einstieg in Eclipse PDT und die Vorteile einer IDE im Allgemeinen, wenn Sie interessiert sind.)


6. Nutzen Sie die Filterfunktionen von PHP besser - Joey Sochacki

Während Joey Sochacki in der PHP-Community vielleicht nicht so bekannt ist wie Matt Mullenweg, ist er ein erfahrener Webentwickler und teilt Tipps mit, die er unterwegs in seinem Blog Devolio aufgegriffen hat.

Joey hat herausgefunden, dass, obwohl beim Schreiben von PHP-Code eine Menge Filterung erforderlich ist, nicht viele Programmierer die Filterfunktionen von PHP nutzen.

Daten filtern. Wir müssen es alle tun. Die meisten, wenn nicht alle von uns, verachten es, es zu tun. Den meisten sind jedoch die filter_*-Funktionen von PHP unbekannt, mit denen wir alle Arten von Filtern und Validieren durchführen können. Mit den filter_*-Funktionen von PHP können wir Datentypen, URLs, E-Mail-Adressen, IP-Adressen, fehlerhafte Zeichen und mehr relativ einfach validieren und bereinigen.

Das Filtern kann schwierig sein, aber diese Anleitung kann immens helfen. Mit Joeys Hilfe lernen Sie, wie Sie die Filter installieren und fast alles filtern, wobei Sie die Filterleistung von PHP nutzen.


7. Verwenden Sie ein PHP-Framework - Josh Sharp

Es gab immer eine Debatte darüber, ob ein PHP-Framework wie Zend, CakePHP, Code Igniter oder ein anderes Framework verwendet werden soll. Die Verwendung von einem hat Vor- und Nachteile, und viele Entwickler haben ihre eigene Meinung darüber, ob sie diesen Weg gehen sollen oder nicht.

Josh Sharp ist ein Webentwickler, der mit seinem Brot und Butter Websites für Kunden erstellt. Deshalb sollten Sie ihm vertrauen, wenn er sagt, dass es eine gute Idee ist, ein PHP-Framework zu verwenden, um Zeit zu sparen und Fehler beim Programmieren zu vermeiden. Warum? Josh glaubt, dass PHP zu leicht zu erlernen ist.

Die Benutzerfreundlichkeit von PHP ist aber auch der Nachteil. Da die Struktur des von Ihnen geschriebenen Codes weniger eingeschränkt ist, ist es viel einfacher, fehlerhaften Code zu schreiben. Es gibt jedoch eine Lösung: Verwenden Sie ein Framework.

PHP-Frameworks helfen bei der Standardisierung Ihrer Programmierung und können viel Zeit im Entwicklungsprozess sparen. Weitere Informationen zu den Vorteilen der Verwendung eines PHP-Frameworks finden Sie in Joshs Blog.


8. Verwenden Sie kein PHP Framework - Rasmus Lerdorf

Entgegen Joshs Überzeugung, dass man ein PHP-Framework verwenden sollte, glaubt Rasmus Lerdorf, der Pate von PHP selbst, dass Frameworks nicht so toll sind. Warum? Weil sie viel langsamer arbeiten als einfaches PHP.

Während der Präsentation von Rasmus auf der Drupalcon 2008 verglich Rasmus die Antwortzeiten auf eine PHP-Seite mit einem einfachen "Hello World" -Beispiel und verglich sie mit einigen PHP-Frameworks (Folien 24-32) und zeigte, dass PHP-Frameworks viel langsamer sind als gerade PHP.

Sie können die gesamte Präsentation anhören oder ansehen, in der Rasmus die Leistungsverluste mit PHP-Frameworks zeigt. Kurz gesagt, Rasmus zeigt, dass die Leistung einen großen Einfluss hat, wenn Sie ein PHP-Framework verwenden, anstatt reines PHP zu verwenden.

[Hinweis: Wenn Sie ein PHP-Framework verwenden müssen, mag Rasmus Code Igniter am besten, da es "am wenigsten wie ein Framework" ist.]


9. Vewenden Sie die Batchverarbeitung - Jack D. Herrington

Jack Herrington ist kein Unbekannter für PHP und die Entwicklungswelt. Neben über 30 Artikeln für den renommierten IBM DeveloperWorks hat Jack auch Programmierbücher wie PHP Hacks veröffentlicht. Jack ist ein echter Experte.

Herrington empfiehlt die Verwendung von Stapelverarbeitung und Cron, um die Aufgaben zu bewältigen, die im Hintergrund verarbeitet werden können. Webbenutzer möchten nicht lange auf die Ausführung von Aufgaben im Web warten. Es gibt einige Jobs, die länger dauern und viel besser für die Ausführung im Hintergrund geeignet sind.

In einigen kleinen Fällen ist es sicherlich etwas einfacher, einen Hilfsthread abzufeuern, um kleine Aufgaben zu erledigen. Es ist jedoch leicht zu erkennen, dass die Verwendung herkömmlicher Werkzeugs - cron, MySQL, objektorientiertes Standard-PHP und Pear::DB - das Erstellen von Batch-Jobs in PHP-Anwendungen einfach, leicht bereitzustellen und zu warten ist.

Jack glaubt an Einfachheit und anstatt Threading auf Servern zu verwenden, verwendet er die einfache Kombination von Cron, PHP und MySQL, um Aufgaben im Hintergrund zu verarbeiten.

Ich habe beides getan und ich denke, Cron hat den Vorteil des "Keep It Simple, Stupid" (KISS) -Prinzips. Es hält die Hintergrundverarbeitung einfach. Anstatt eine Multithread-Jobverarbeitungsanwendung zu haben, die für immer ausgeführt wird und daher niemals Speicher verlieren kann, haben Sie ein einfaches Batch-Skript, das cron startet. Das Skript bestimmt, ob etwas zu tun ist, tut es und wird dann beendet. Sie müssen sich keine Sorgen über Speicherlecks machen. Sie müssen sich keine Sorgen machen, dass ein Thread blockiert oder in eine Endlosschleife gerät.


10. Aktivieren Sie die Fehlerberichterstattung sofort - David Cummings

David Cummings betreibt sein eigenes Softwareunternehmen, das sich auf Content-Management-Systeme spezialisiert hat und mehrere Auszeichnungen erhalten hat. Wenn jemand weiß, wie man eine PHP-Anwendung effizient entwickelt, ist es Dave.

David schrieb in einem SitePoint-Artikel über die beiden PHP-Tipps, die er sich am Anfang gewünscht hatte. Einer der Tipps: Aktivieren Sie die Fehlerberichterstattung sofort. Das spart auf lange Sicht viel Zeit.

Das Wichtigste, was ich Leuten sage, die PHP verwenden, ist, die Fehlerberichterstattung auf das Maximum zu bringen. Warum sollte ich das tun wollen? Im Allgemeinen wird die Fehlerberichterstattung auf eine Ebene eingestellt, die viele kleine Dinge verbirgt wie:

  • eine Variable vorab deklarieren,
  • Verweisen auf eine Variable, die in diesem Codesegment nicht verfügbar ist, oder
  • Verwenden einer Definition, die nicht festgelegt ist.
  • Diese Faktoren scheinen keine große Rolle zu spielen - bis Sie strukturierte oder objektorientierte Programme mit Funktionen und Klassen entwickeln. Zu oft kostete das Schreiben von Code ohne hohe Fehlerberichterstattung Stunden, da Sie lange Funktionen durchsucht haben, die nicht funktionierten, weil eine Variable falsch geschrieben war oder nicht zugänglich war.

Die Fehlerberichterstattung kann das Auffinden des Grundes für einen Fehler erheblich erleichtern. Ein kleiner Fehler im Code kann schnell erkannt werden, wenn die Fehlerberichterstattung von PHP hoch eingestellt ist. Sparen Sie sich Zeit und Haare, indem Sie PHP Ihre Fehler für Sie finden lassen.

Lesen Sie den vorherigen Beitrag in dieser Reihe: 10 Prinzipien der CSS-Master.

  • Abonnieren Sie den NETTUTS RSS Feed für weitere tägliche Webentwicklungs-Tutorials und Artikel.

Glen Stansberry ist ein Webentwickler und Blogger, der öfter Probleme hatte, als er mit CSS zugeben möchte. Weitere Tipps zur Webentwicklung finden Sie in seinem Blog Web Jackalope.


Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.