Heim  >  Artikel  >  Backend-Entwicklung  >  Warum ist PHP nicht für große Projekte geeignet?

Warum ist PHP nicht für große Projekte geeignet?

青灯夜游
青灯夜游Original
2019-10-12 14:48:445144Durchsuche

Warum ist PHP nicht für große Projekte geeignet?

Warum ist PHP nicht für große Projekte geeignet?

1. Schlechte Unterstützung für Rekursion

Rekursion ist ein Mechanismus, mit dem sich Funktionen selbst aufrufen können. Dies ist eine leistungsstarke Funktion, die etwas Komplexes in etwas sehr Einfaches verwandeln kann. Ein Beispiel für die Verwendung von Rekursion ist Quicksort. Leider ist PHP nicht sehr gut in der Rekursion. Zeev, ein PHP-Entwickler, sagte: „PHP 4.0 (Zend) verwendet einen Stack-Ansatz für dichte Daten anstelle eines Heap-Ansatzes. Dies bedeutet, dass die Anzahl der rekursiven Funktionen, die es tolerieren kann, deutlich weniger begrenzt ist als bei anderen Sprachen.“ . Das ist eine sehr schlechte Ausrede. Jede Programmiersprache sollte eine gute Rekursionsunterstützung bieten.

2. Viele PHP-Module sind nicht threadsicher

Vor einigen Jahren veröffentlichte Apache Version 2.0 des Webservers. Diese Version unterstützt den Multithreading-Modus, bei dem ein Teil der Software mehrere Teile gleichzeitig ausführen kann. Der Erfinder von PHP sagt, dass der Kern von PHP threadsicher ist, Nicht-Kernmodule jedoch möglicherweise nicht. In neun von zehn Fällen möchten Sie dieses Modul jedoch in einem PHP-Skript verwenden, was jedoch dazu führt, dass Ihr Skript nicht mit dem Multithread-Modus von Apache kompatibel ist. Aus diesem Grund empfiehlt das PHP-Team nicht, PHP im Multithread-Modus von Apache 2 auszuführen. Die schlechte Unterstützung des Multithread-Modus von PHP wird oft als einer der Gründe dafür angeführt, dass Apache 2 nach wie vor unbeliebt ist.

3. PHP ist aus geschäftlichen Gründen nicht einwandfrei

Durch die Verwendung von Cache kann die Leistung von PHP um 500 % gesteigert werden [siehe Benchmark-Test]. Warum ist Caching nicht in PHP integriert? Da Zend, der Hersteller von PHP, seinen eigenen Zend Accelerator verkauft, möchte er sein kommerzielles Produkt natürlich nicht aufgeben.

Aber es gibt noch eine andere Option: APC (Zend startete später Zend Optimizer, einen kostenlosen Beschleuniger – Übersetzer)

4, Nicht standardmäßiges Datumsformatzeichen

Viele Programmierer sind mit dem Datumsformatzeichen vertraut, das aus UNIX und der C-Sprache stammt. Mehrere andere Programmiersprachen haben diesen Standard übernommen, aber seltsamerweise verfügt PHP über einen eigenen Satz völlig inkompatibler Datumsformatzeichen. In C repräsentiert „%j“ den Tag des Jahres und in PHP den Tag des Monats. Um die Sache jedoch noch verwirrender zu machen: Die strftime-Funktion und die date_format-Funktion von Smarty (einer beliebten PHP-Template-Engine) verwenden C/UNIX-Formatierungszeichen.

5. Verwirrende Lizenzen

Sie denken vielleicht, dass PHP kostenlos ist und alle im Handbuch erwähnten PHP-Module auch kostenlos sind. Falsch! Wenn Sie beispielsweise PDF-Dateien in PHP generieren möchten, finden Sie im Handbuch zwei Module: PDF und ClibPDF. Beide sind jedoch kommerziell lizenziert. Daher müssen Sie für jedes Modul, das Sie verwenden, sicherstellen, dass Sie dessen Lizenz zustimmen.

6. Inkonsistente Regeln für die Benennung von Funktionen

Einige Funktionsnamen bestehen aus mehreren Wörtern. Es gibt im Allgemeinen drei Gewohnheiten von Wortkombinationen:

● Direktes Zusammenfügen: getnumberoffiles

● Durch Unterstriche getrennt: get_number_of_files

● Camel-Regel: getNumberOfFiles

Most davon Wählen Sie eine der Sprachen. Es wird aber PHP verwendet.

Wenn Sie beispielsweise einige Sonderzeichen in HTML-Entitäten umwandeln möchten, würden Sie die Funktion htmlentities (direktes Zusammenfügen von Wörtern) verwenden. Wenn Sie die gegenteilige Funktionalität nutzen möchten, müssen Sie seinen kleinen Bruder html_entity_decode verwenden. Aus einem besonderen Grund enthält dieser Funktionsname Wörter, die durch Unterstriche getrennt sind. Wie könnte das sein? Sie wissen, dass es eine Funktion namens strpad gibt. Oder ist er str_pad? Jedes Mal müssen Sie überprüfen, was das Symbol ist, oder auf einen Fehler warten. Bei Funktionen wird die Groß-/Kleinschreibung nicht beachtet, daher gibt es für PHP keinen Unterschied zwischen rawurldecode und RawUrlDecode. Das ist auch deshalb schlecht, weil beide verwendet werden und unterschiedlich aussehen, was den Leser verwirrt.

7. Die Hölle der magischen Zitate

Magische Zitate können PHP-Skripte vor SQL-Injection-Angriffen schützen. Das ist gut. Aus bestimmten Gründen können Sie diese Konfiguration jedoch in php.ini deaktivieren. Wenn Sie also ein flexibles Skript schreiben möchten, müssen Sie immer überprüfen, ob magische Referenzen aktiviert oder deaktiviert sind. Ein solches „Feature“ soll die Programmierung erleichtern, tatsächlich macht es es aber komplizierter.

Zusammenfassung

Für sehr kleine Projekte kann es eine sehr zufriedenstellende Programmiersprache sein. Doch bei größeren und komplexeren Projekten zeigt PHP seine Schwächen.

Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonWarum ist PHP nicht für große Projekte geeignet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn