Ich sehe ständige Verweise auf den "Weg", wie Beschreibungen eines bestimmten Frameworks oder einer bestimmten Anwendung als "Pythonic", eine bestimmte Person als "Perl-Hacker" oder "echter Ruby-Code", aber wo sind die "PHP-Hacker"? die "PHP-ic" -Anwendungen, der "wahre PHP-Stil"?
Das brachte mich zum Nachdenken - hat PHP überhaupt einen bestimmten Stil? Zu sagen, dass PHP leicht in andere Stile "geändert" werden kann, zählt nicht, da dies auch für jede vernünftige Sprache gilt.
Jede Eingabe wird sehr geschätzt.
php
language-discussion
Jonathan Chan
quelle
quelle
Antworten:
Im Gegensatz zu vielen anderen Programmiersprachen hat PHP weder einen einheitlichen Gedanken noch eine Reihe von Kernideen: Es begann als sehr pragmatischer Satz von Perl-Skripten, und Funktionen wurden nach Bedarf ohne großen formalen Entwurfsprozess hinzugefügt. Das Ergebnis ist eine Sprache, die sehr nützlich und vollständig ist, aber für sich genommen nicht sehr konsistent. Die immense Popularität der Sprache macht die Sache noch schlimmer; Sobald eine neue Funktion eingeführt wird, ist sie praktisch in Stein gemeißelt, da jeder damit beginnt. Ein paar Designfehler wurden auf diese Weise konsolidiert, und das PHP-Team hat es wirklich schwer, die Leute dazu zu bringen, sich von ihnen zu entfernen -
register_globals
und diesmagic_quotes
sind nur zwei Beispiele für Dinge, die zu dieser Zeit als gute Ideen erschienen, sich jedoch als weit verbreitet erwiesen haben.Ein weiterer Faktor ist die Kultur, die um PHP herum gewachsen ist. Als seine Popularität zu wachsen begann, bestand der typische Anwendungsfall für PHP darin, kleine Ausschnitte der serverseitigen Funktionalität in ansonsten statische HTML-Dokumente einzufügen. Ein großer Teil der Zielgruppe waren Hobbyisten und Nicht-Programmierer, die PHP verwendeten, um ihren statischen Websites ein bisschen dynamisches Material hinzuzufügen. Die daraus resultierende Kultur ist sehr pragmatisch, ohne großes Interesse daran, einen „richtigen Weg“ zu finden. Während es möglich ist, recht elegantes PHP zu schreiben, interessiert sich ein großer Teil der Benutzergemeinschaft einfach nicht dafür, solange es funktioniert.
Im Gegensatz dazu hatten Sprachen wie Python, Ruby, Lisp, C #, Haskell und andere von Anfang an eine Philosophie, und die Community nimmt sie im Allgemeinen an und drängt die Sprache, ihr gerecht zu werden. (Wenn Sie interessiert sind, geben Sie
import this
eine interaktive Python-Sitzung ein.) Eine Philosophie zu haben bedeutet, dass es eine Richtlinie für die Verwendung und Erweiterung der Sprache gibt, und sie führt auch zu einer homogeneren Gemeinschaft. Wenn Sie mit der Philosophie nicht einverstanden sind, gehen Sie eher weg und finden eine, die besser zu Ihnen passt ;; Es ist wahrscheinlicher, dass die resultierende Gemeinschaft einen Konsens über alle möglichen Dinge erzielt.Das heißt, PHP hat Stärken und Schwächen sowie obskure Randfälle; Das Schreiben von idiomatischem PHP-Code bedeutet, die Stärken zu nutzen und die Schwächen und Unklarheiten zu vermeiden, genau wie bei jeder anderen Sprache.
quelle
Ich denke, wenn Leute den PHP-Weg sagen, hat er ein negatives Gewicht, das ist der Begriff, den wir in einem Polygot-Shop (Python, C #, Ruby) verwendet haben. Zum Beispiel "Just-do-it-and-Throw-it-out there", wie es in Gots vorkommen könnte, undichte Dateihandles, SQL-Injection-Schwachstellen, super tiefe verschachtelte Schleifen, 3000-Zeilen-Funktionen und immer noch als " PHP-Weg '. Wenn mir in einem Peer Review jemand sagte, dass der Code sehr "PHP-artig" ist, wäre ich zutiefst beleidigt.
Ich schätze, dass dies einige Flammen verursachen wird, daher werde ich anerkennen, dass es Leute gibt, von denen bekannt ist, dass sie guten PHP-Code produzieren, und PHP wird in einigen großen Produktionsstätten verwendet. Ich sage nur, was die Menge am häufigsten denkt und sieht, die Meinung wird von den Handlungen der Mehrheit getragen, nicht von der Minderheit.
quelle
Wenn es einen "PHP-Weg" gibt, ist es "Mach es einfach!".
Obwohl PHP über alle modernen OO-Konstrukte verfügt, die Klassen, Modul-Namensräume, Introspektion usw. sowie alle dynamischen Programmier-Extras enthalten, die normalerweise mit mehr modifizierbaren Sprachen wie Python verbunden sind. Sie sehen sie selten nur deswegen verwendet, oder sehen, dass PHP-Programmierer von der "Reinheit" ihrer Implementierung besessen sind.
Ich habe keine Ahnung, warum es so einen kulturellen Unterschied geben sollte - aber da ist es da.
Es gibt eine Reihe von Schrecken da draußen und dies spiegelt vielleicht wider, dass so viel "PHP" -Code "My First Webapp" oder sogar "My First Program" ist.
Persönlich finde ich es ziemlich einfach, professionell geschriebenen PHP-Code zu lesen / zu verstehen. Im Allgemeinen ist es viel einfacher zu lesen als Java-Apps alle Factory-Klassen und die Hälfte der Logik in XML-Dateien.
quelle
Ich würde sagen, der PHP-Weg ist der "Duct Tape Programmer" - schnell versenden, schnell versenden, sich später um alles andere kümmern und Fehler schnell beheben, ohne an die Zukunft zu denken. Während dies in keiner Weise eine Verurteilung von PHP selbst ist (Sie können dies in jeder Sprache tun), haben sich PHP-Entwickler erst vor kurzem über Software-Engineering- und Design-Muster, SOLID, Tests und dergleichen Gedanken gemacht.
quelle
Ich würde sagen, die Idee von PHP ist praktisch. Was es in jedem einzelnen Fall bedeutet, ist schwer zu definieren, aber wenn zum Beispiel etwas ein HTML-Formular und fünf Codezeilen erfordert, platzieren Sie dort kein MVC-Framework mit 20 Klassen. Wenn Sie dagegen eine Anwendung für 20 Millionen Benutzer entwickeln, platzieren Sie das Framework dort und verfügen Sie über Logik, Präsentation und Flusskontrolle. Aber PHP hat hier nichts Besonderes, daher ist es möglicherweise keine zufriedenstellende Antwort.
Ich glaube nicht, dass es einen PHP-Stil gibt. Ich persönlich denke, dass die Vorstellung, dass es einen Stil gibt, der für alle Sprachbenutzer geeignet ist, nur dann Sinn macht, wenn die Sprache einen sehr eingeschränkten Anwendungsbereich hat, was für PHP definitiv nicht zutrifft.
Bestimmte Anwendungen haben ihre Stile. Wenn Sie sich beispielsweise mit Zend Framework befassen, sehen Sie sehr viel OO-Code mit definierten Schnittstellen, kontrollierten APIs usw., in denen Sie bekannte Entwurfsmuster leicht erkennen können. Auf der anderen Seite gibt es Anwendungen wie Drupal, die eher prozedural vorgehen.
Ich verstehe, dass das nicht viel von "echtem PHP-Stil" gibt, aber das liegt wahrscheinlich daran, dass es so etwas nicht gibt. Es gibt Best Practices usw., aber ich fürchte, es ist nicht das, wonach Sie suchen.
quelle
Einige Leute benutzen PHP als Zeichen der Verachtung - nur eine Tatsache, persönlich bin ich ein Fan.
Für mich ist das, was einen PHP-Ansatz definiert hat, im Wesentlichen das Fehlen eines Anwendungskontexts. Im Vergleich zu .NET oder der Java-Welt gibt es keinen integrierten Anwendungskontext.
Dies führt dazu, dass PHP-Server im Wesentlichen zustandslos sind (solange Sitzungen auf einen anderen Server verschoben werden, z. B. eine gemeinsam genutzte Festplatte oder Datenbank).
Das ist so ziemlich das, woran ich denke, wenn ich an den PHP-Weg denke.
quelle
Noch eine Antwort! Diesmal ist es eher eine Beobachtung der "Kultur" des Programmierens.
PHP befindet sich in der gleichen Position wie Javascript (ECMAscript für Pedanten!) Im Jahr 2002. Eine kleine Gruppe von erfahrenen Programmierern schätzte seine hervorragende Leistung. Die allgemeine Meinung war, dass es eine schlechte und obskure Skriptsprache war, die nur zum Scrollen von Bannern und nervigen Benutzern nützlich war mit Popups.
Dann kam AJAX und plötzlich war die ganze Welt voller Ehrfurcht vor der Kraft und Eleganz von Javascript.
Obwohl PHP nicht so elegant wie Javascript ist, teilt es doch einen großen Teil der Leistungsfähigkeit und Einfachheit dieser Sprache, und es besteht ein Konsens darüber, wie PHP für große Systeme "richtig" programmiert werden kann.
Der andere Indikator dafür, wie gut PHP in seinem Fachgebiet ist, ist das Fehlen von Frameworks für die meisten ernsthaften Anwendungen. Viele sehr erfahrene Programmierer verwenden gerne nur "PHP", wie es ohne die Hilfe eines Mega-Frameworks steht. Die schiere Verbreitung von Frameworks und anderen Hilfsmitteln zeigt mir, dass Java, Python usw. es nicht richtig verstanden haben und dass Programmierer, die diese Sprachen verwenden, zutiefst unglücklich und unsicher sind, wie eine Webanwendung erstellt werden soll. Wenn sie jedoch sehen, wie einfacher PHP-Code verwendet wird, um komplexe Websites ohne die unlesbaren XML-Konfigurationen, den Vorlagendialekt des Monats oder den eigenen ORM-Dialekt erfolgreich zu implementieren, ziehen sie die falsche Schlussfolgerung - dass der PHP sein muss schlecht, weil es keine IntegerFactory-Klassen, Abhängigkeitsinjektion usw. gibt.
Tatsächlich lassen sich all diese Dinge leicht in PHP implementieren und werden häufig bei Bedarf verwendet - es ist nur so, dass die Implementierung normalerweise aus ein paar Zeilen PHP besteht und von Programmierern, die es gewohnt sind, dasselbe mit massiven zu tun, nicht als solche erkannt wird Bibliotheken und komplexe APIs.
PHP ist einfach. "einfach" ist die höchste Ergänzung, die Sie einer Software geben können, und die am schwersten zu erreichende.
quelle