Frage

Ich habe eine gelesen Artikel/Interview (Sprachkrieg:PHP vs.Rubin (von Jeffrey Way;März 2011)) von einem Entwickler für Envato mit Ruby.Er sagt: „PHP ist ein als Sprache getarntes Web-Framework.“

Er hat diese Aussage nicht erläutert, daher habe ich mich gefragt, ob das wahr ist und wenn ja, wie.Ich habe ein wenig recherchiert, konnte aber keine Informationen zu diesem Thema finden.Ich frage mich, wie diese Aussage wahr ist und was PHP zu keiner Programmiersprache macht.Und warum passen andere Sprachen wie Python oder Ruby nicht in diese Kategorie?

War es hilfreich?

Lösung

offiziell:

pHP ist eine weit verbreitete Allzweckskriptsprache, die sich besonders für die Webentwicklung eignet und in HTML eingebettet werden kann.

nach http://us.php.net/

Das ist jedoch nicht unbedingt eine sehr apt-Beschreibung.

pHP ist eine vollständige Computersprache. Jede Verteilung von PHP wird jedoch mit einer riesigen Anzahl der Standardbibliotheken eingehen, so dass die Standard-PHP-Bibliotheken als Rahmen eingestuft werden könnten.

Wenn also auf diese Weise angesehen, ist PHP entweder:

ein Framework mit seiner eigenen einzigartigen Turing-vollständigen Skriptsprache.

oder

eine Sprache, die in einem massiven Webrahmen eingewickelt wird, von dem es nicht entfernt werden kann.

Wenn wir jedoch den Namen "PHP: Hypertext Preprocessor" (PHP) ansehen, bedeutet dies, dass PHP ein "Präprozessor" ist (der vorverarbeitet Hypertext) - weder ein Framework noch eine Sprache, sondern ein Stück Software.

Wenn Sie es so betrachten, ist PHP eine Anwendung, die Skripts in einer proprietären Sprache ausführt, mit Zugriff auf einen großen internen Rahmen, der zum Verarbeiten von Hypertext entwickelt wurde.

deshalb: pHP kann nicht ordnungsgemäß als ein Framework oder als Sprache eingestuft werden. Die Wahrheit ist, dass es eine Sprache, ein Framework und eine Anwendung gibt, die alle denselben Namen haben (weil sie alle in eine Sache gerollt sind)! Somit kann "PHP" auf einen beliebigen Teil des Systems beziehen.

Andere Tipps

Ich habe keine Quellen - aber die Aussage macht einen Sinn, auch wenn es nur ein Versuch sein könnte, Kontroversen zu rühren.

pHP ist definitiv eine Sprache und sehr nicht ein Rahmen - aber wenn Sie sich das PHP-Handbuch gegenüber dem PHP-Ansatz ansehen, sagen Sie die C- oder C ++ - Spezifikation, der Funktionsorgan, dass PHP-Angebote Elemente enthältDas würde in der Domäne eines Frameworks in Betracht gezogen werden: PDO, XML-Handling usw. - dieses Zeug ist, was normalerweise in einem Rahmen wie qt enthalten wäre.

Die Sache mit PHP ist, dass es nicht nur eine Programmiersprache ist, sondern ein ganzes Ökosystem, bestehend aus:

  • Die PHP-Programmiersprache selbst
  • Eine Laufzeit, die sich mit einem Webserver verbinden kann (über mod_php oder CGI/FastCGI) und bietet viele Möglichkeiten, damit zu interagieren
  • Eine große Bibliothek integrierter Funktionen und Klassen, viele davon webbezogen

PHP bietet in der Sprache selbst Funktionen, die sehr spezifisch für die Webprogrammierung sind, wie zum Beispiel die Superglobals ($_SERVER, $_GET, $_POST, $_COOKIE, usw.), Springen zwischen PHP-Modus und HTML-Modus mit <?php ?> Tags usw. und seine Semantik basieren auf dem Ausführungsmodell „Ein Prozess pro Anfrage“, das in den frühen Tagen der serverseitigen Webprogrammierung die Norm war.PHP begann als Web-Scripting-Tool und entwickelte sich erst später zu einer (einigermaßen) universellen Programmiersprache;Die CLI-Version und andere Nicht-Web-Funktionen sind, auch wenn sie oft sehr effektiv genutzt werden können, ein nachträglicher Einfall, und wenn man sich ausreichend mit der Sprache und ihrem Ökosystem auseinandersetzt, kann dies manchmal schmerzhaft offensichtlich werden.

Im Gegensatz dazu wurden die meisten anderen Programmiersprachen von Anfang an als Allzweck-, System- oder Anwendungsprogrammiersprachen konzipiert, und alles, was sich speziell auf die Webprogrammierung bezieht, ist in Bibliotheken enthalten.Wenn Sie Webprogrammierung beispielsweise in Python durchführen möchten, benötigen Sie ein Webframework oder zumindest eine Bibliothek zum Implementieren von Webserverbindungen und Dingen wie Anforderungsanalyse, HTML-Vorlagen und Sitzungsverwaltung sowie wahrscheinlich auch einige Datenbankbindungen (es sei denn, Sie). Ich bin wirklich Hardcore und schreibe das alles von Grund auf.

In PHP sind all diese Dinge standardmäßig integriert, und deshalb sagen die Leute gerne, dass PHP ein eigenständiges Web-Framework ist.

Für eine "Hallo, Welt!" Webanwendung In Python haben Sie in der Regel ein Virtualenv einrichten, einige Bibliotheken installieren, ein Kesselplatten für das Web -Framework einrichten, Routen definieren und einen Handler schreiben, der eine Antwort mit "Hallo, Welt!" generiert. im Körper;In PHP ist es eine Frage des Schreibens <?php echo "Hello, world!" in index.php, kopieren Sie es in die Docroot von Apache und aktivieren Sie mod_php.Der Rest (Einbinden in den Server, Analysieren von Anfragen, Generieren von Antworten usw.) geschieht weiterhin, aber PHP erledigt das für Sie.

pHP ist keine Websprache.Es hat Funktionen in der Webanwendung integriert.Die Entwicklung einer Webanwendung in PHP ist im Vergleich zu anderen Sprachen wie Java, ASP, C # sehr einfach, sehr einfach.

Wenn Sie eine Webanwendung entwickeln möchten, die nicht so riesig ist und Datenbank mit weniger Größe (wenige GBs) verwendet, können Sie die PHP-Webanwendung entwickeln.Es gibt viele Webhost-Unternehmen, die PHP-basierte Webhosting-Laden mit allen Funktionen bereitstellen, mit allen Funktionen, die eine PHP-Site im Vergleich zu Java / ASP ist, liefern.PHP ist eine leichte Webanwendung.

Ryan bildet wahrscheinlich seine Meinung nach einer historischen Perspektive. Historisch sollte PHP eine Websprache sein. Historisch wurden viele Funktionen in der Sprache für diesen Anwendungsfall ausgelegt, und in der Tat verwendete PHP für "persönliche Homepage". http://www.nusphere.com/php/php_history.htm

Aber jetzt hat sich PHP viel entwickelt und ich würde persönlich argumentieren, dass dies nicht wirklich wahr ist.

nur 2 Beispiele:

-Fewäden wurden nur in letzter Zeit zu der Sprache hinzugefügt. Für lange Zeit war es einfach nicht möglich. Threads sind etwas, das in einer Webumgebung nicht sinnvoll ist (stattdessen neigen Sie dazu, einen völlig neuen Hintergrundprozess zu treten oder eine Nachricht durch eine Quere an einen anderen Arbeiter an einem Arbeiter zu übergeben). http://uk3.php.net/manuelle/de/book.pthreads.php

Memory & Resource Management. PHP bietet ein __destruct () -Methode für Objekte, sodass Sie Ressourcen löschen können. Zu beginnen, wurde dies nur beim Herunterfahren des Skripts aufgerufen. Jetzt in einer Web-Umgebung ist dies sinnvoll, da Sie nur, dass Ihr Skript nur 0.5secs bei Max ausgeführt werden soll, sodass das Skriptabschalt niemals weit entfernt ist. Aber für einen langen, laufenden Hintergrund oder Shell-Skript ist das schrecklich. Spätere Versionen von PHP behoben. http://php.net/manual/de/language.oop5.decon.php

Sie neigen jedoch in der Regel in der Regel dazu, PHP in einem Web- und Serverkontext zu finden, und nicht in einem Desktop-App-Kontext - hier ist dies, so dass viel Fokus ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top