Fit4PHP – PHP Tutorial - Php für Einsteiger und Fortgeschrittene
Startseite
PHP, die serverseitige Skriptsprache des Webs

Im Internet werden die unterschiedlichsten Dienste betrieben. Fast alle von ihnen sind mittlerweile unter dem allgegenwärtigen Webdienst schon fast in Vergessenheit geraten. Anfangs gedacht als ein Dienst, der verlinkte Informationen einem Benutzer über einen sogenannten Webbrowser verfügbar macht, sind nun die unterschiedlichsten anderen Services über das Web erreichbar, wie der Austausch von Dokumenten oder das Versenden von Emails oder die Recherche in Datenbanken.

Das Web ist so populär geworden, weil über Links zwischen den einzelnen Informationsseiten auf einfachste Weise gesprungen werden kann und auf diese simple Weise der Navigation eine unglaubliche Fülle an Wissen abgerufen werden kann. Dies funktioniert ganz ohne das auf dem Clientcomputer neue Software installiert werden müsste. Zusätzlich gibt es einen einfachen Zugang dazu, selbst diese Informationen im weltweiten Netz für jeden zugreifbar, abzulegen. So entstehen Homepages oder auch Webseiten genannt, sei es um Werbung für sein Geschäft, Verein oder etwas anderes zu machen, sein Hobby vorzustellen und mit anderen zu teilen oder auch nur die letzten Urlaubsfotos zu zeigen.

Die Anfänge des Web waren dies reine HTML-Seiten die der Anbieter in mühsamer Kleinarbeit zusammen gefügt hat. Der Webserver, auf dem diese Seiten dann abgelegt wurden, machte nichts anderes, als Dateien aus einem Dateisystem je nach Abruf zu lesen und sie über die Netzwerkschnittstelle zu versenden. Aus diesem Stadium ist das Web mittlerweile entwachsen. Dynamische Seiten herrschen vor und unterschiedliche serverseitige Programmiersprachen buhlen um die Gunst des Entwicklers. Auch auch auf der Clientseite hat sich vieles getan hat und ein Entwicklung zum Dynamischen ist auch hier zu sehen. Zunächst waren es die Java-Applets und Flash-Animationen. Heute werden gesamte Webapplikationen auf der Clientseite in JavaScript, HTML 5 und CSS 3 geschrieben, bei denen man nicht mehr feststellen kann, dass sie überhaupt aus mehreren Seiten bestehen.

Diese Buch widmet sich der serverseitigen Programmierung von Webseiten mit Hilfe der Programmiersprache PHP und des Datenbankmanagementsystems MySQL. Viele unterschiedliche Programmiersprachen haben es in den vergangenen Jahren versucht PHP aus dem Rennen zu werfen und einfacher und eleganter Entwickler Webseiten erstellen zu lassen. PHP hat einen großen Angriff von Java-Seite her erfahren. Es hat einen Angriff von Python-Seite, von Ruby und neuerdings auch von JavaScript erfahren. In seinen Anfangsjahren musste es sich gegen Perl durchsetzen. Trotzdem hat sich PHP gehalten und dafür gibt es Gründe.

PHP war lange verpönt, keine saubere Programmiersprache zu sein und Objektorientierung nur unzureichend zu unterstützen. Ihr wurde nachgehalten, dass sie langsam und häufig kryptisch wäre. Doch haben die Schaffer der Sprache immer neue Versionen ins Rennen geschickt und die Mankos der Vergangenheit ausgebessert. Und dies geschah auch im Hinblick auf die Abwärtskompatibilität. Eine neue PHP-Version machte auf ihr laufende Software nicht unausführbar, sondern Änderungen wurden Schritt um Schritt umgesetzt. Zwar fällt einem auf, dass die API immer noch an manchen Stellen nicht ganz durchdacht ist, allerdings obliegen die Stärken von PHP. PHP ist schnell geworden. In PHP lässt sich vollständig objektorientiert programmieren.

Besonders überzeugt PHP durch seine Tauglichkeit im Hosting von mehreren unterschiedlichen Webseiten auf ein und demselben Server, dass es besonders stabil und abgeschottet von anderen Webseiten ausgeführt werden kann. Unterschiedliche Sicherheitsfeatures sorgen dafür, dass ein fehlerhaftes PHP-Programm auf einem Serversystem nicht den gesamten Server unbrauchbar macht und auch die Sicherheit der einzelnen Webseiten untereinander gewährt bleibt. Das ermöglicht es dem Hoster, einen Server mit tausenden von Webseiten zu betreiben und die einzelne Webseite für wenig Geld dem Kunden anbieten zu können. So lassen sich mühelos viele Anbieter finden, die einem für ein paar Euro im Monat schon ein großes Webpaket überlassen, auf dem dann die privaten oder auch gewerblichen Seiten betrieben werden können.

Wegen seiner hohen Verbreitung setzen viele OpenSource-Projekte für Content Management Systeme, Blogs, Foren und viele mehr, auf PHP auf. Dies sichert einem eine große Auswahl an Software, die in die eigene Seite integriert werden kann, um die Inhalte einfach zu pflegen oder die Besucher anzuregen, eigene Inhalte zu der Webseite hinzu zu steuern.

Auf dieser Webseite werde ich mich auf PHP konzentrieren. Mit den Jahren der Entwicklung ist das Web ein Ort geworden, zu dessen Gestaltung man viele Dinge lernen muss. Früher reichten hier etwas HTML-Kenntnisse aus. Heute jedoch möchte ich diese HTML-Kenntnisse in diesem Buch schon voraus setzen. SQL ist wieder eine Welt für sich. Ohne SQL-Kenntnisse kann man dieses Buch vollständig verstehen und ich werde an der entsprechenden Stelle entsprechend einführen. Allerdings muss man sich zusätzlich in SQL vertiefen, möchte man tatsächlich mehr anfangen. Und dann ist dort noch die Clientseite. Auch hier rate ich dazu, eine eigene Einführung mit der geeigneten Literatur zu haben. Hier gilt es die Sprache JavaScript zu erlernen und sich an die Eigenheiten dieser Sprache in verschiedenen Browsern anzufreunden. Auch dies soll nicht Aufgabe dieses Buches sein.

Aufbau der Webseite

Ich finde es äußerst wichtig, nicht trocken in ein Thema einzusteigen, sondern schon schnell zu praktischen Ergebnissen zu kommen. Deshalb ist auch dieses Buch auf diese Art aufgebaut, dass Sie schon sehr bald Ihr erstes eigenes PHP-Programm Hello World geschrieben haben werden, nachdem wir uns mit den Grundlagen und der Einführung der Client-Server-Programmierung beschäftigt haben. Dann werde ich auf die Eigenschaften der Programmiersprache PHP eingehen, um dann hinüber zu deren API zu gehen. Besonders wichtig ist die Ansteuerung eines MySQL-Servers. Auch hierauf werde ich in diesem Abschnitt übergehen.

Da es viele Softwarepakete im OpenSource-Bereich für die Programmiersprache PHP gibt, werde ich auch auf diese entsprechend weiterführend eingehen, wie man sich diese Produkte zu Nutze macht und mit Hilfe von OpenSource zu einer hochdynamischen Seite gelangt. Dies sind zukünftige Gebiete, die diese Webseite angehen wird.

Weiterhin sind in der Vergangenheit zahlreiche Frameworks entwickelt worden, die die Entwicklung von Anwendungen basierend auf PHP vereinfachen sollen. Dabei handelt es sich um MVC-Frameworks, die gemäß dem Model View Controller Paradigmas dem Programmierer eine Schablone bereitstellen, in welche er sowohl die Aktionen (Controller) seiner Webseite hinein programmiert als auch dessen Darstellung (View) wie auch die Objekte, die die Daten halten (Model). Zusätzlich werden von einigen Frameworks zahlreiche Hilfsfunktionen angeboten. MVC-Frameworks können Entwicklern, die in diesen Frameworks geübt sich, helfen, enorm schnell eine Webapplikation auf PHP-Basis bereit zu stellen. Weiterhin sorgen diese Frameworks auch dafür, dass, obwohl viel Funktionalität in eine Webseite eingebaut wird, trotz dieser Funktionalität der Sourcecode sauber programmiert werden kann und dementsprechend das gesamte System fehlerfreier und auch komfortabler erweiterbarer bleibt. Anhand dieser Webseite plane ich einige Frameworks vorzustellen und deren Vor- und Nachteile aufzuzeigen und so den fortgeschrittenen Programmierer weiter zu helfen.

Zusätzlich dazu sind neue Arten der Datenhaltung aufgekommen. Datenbanken müssen innerhalb des Internets große Mengen an Informationen speichern. Gleichzeitig werden sie von unterschiedlichen Knoten des Systems gleichzeitig angesprochen, weshalb eine hohe Last auf ein traditionelles Datenbankmanagementsystem wie MySQL entstehen kann. Deshalb wird auf neue Konzepte ausgewichen, so die Daten auf mehrere Knoten verteilt werden und nicht mehr unbedingt konsistent sein müssen, sondern Zeitverzögerungen in ihren Updates erlaubt sind. In einem Onlineblogsystem ist es beispielsweise nicht nötig, unbedingt allen Nutzern einen neuen Artikel zugänglich zu machen, sondern dies kann auch einige Sekunden zeitverzögert erfolgen. Auf diese neue Art der Datenhaltung im Webscale-Bereich möchte ich eingehen, woanders auch NoSQL genannt. Auch dies soll ein zukünftiger Teil dieser Webseite sein.

Hinweise zu Beginn

Ich wünsche Ihnen viel Spaß beim Lesen dieser Seiten. An der einen oder anderen Stelle könnte es sein, dass Sie auf Fehler stoßen. Niemand ist perfekt und auch ich bin es nicht und die zahlreichen Vorgänger, die diese Seite gelesen haben, können diese Stelle einfach überlesen haben. Manchmal kann es auch sein, dass Ihnen sich der Inhalt eines Teiles nicht erschließen will. Gerne helfe ich Ihnen an dieser Stelle auf die Sprünge. Bitte wenden Sie sich einfach per Email an mich und ich werde versuchen Ihnen zu Antworten. Meine Emailadresse hierzu finden Sie in dem Impressum dieser Seite.

Zum Inhaltsverzeichnis