Weborientierte Programmiersprachen am Beispiel PHP Serak Rezane Seminar Programmiersprachen SS 2004 Betreuer: Prof. Dr. Claudia Leopold Dipl.-Inf. Michael Süß
Was ist PHP? Gliederung (Definition, Geschichte, Sprachfamilie) Was kann PHP? (Einsatzgebiete, Syntax, Sprachentwurf) Warum PHP? (Vergleich, Vor-/Nachteile) 2
Was ist PHP? Definition PHP (offiziell: PHP: Hypertext Preprocessor ) ist eine serverseitige, in HTML eingebettete Skriptsprache. [phpman] 3
Was ist PHP? Geschichte Erfinder: Rasmus Lerdorf vom privaten Projekt zur umfangreichen Skriptsprache freiwilliges Entwicklerteam ab Version 4 neue Architektur und deutliche Performance-Steigerung über 1800 Funktionen aktuelle Version: PHP 4.3.6 1995 Version 1: Personal Home Page Tools 1995-1997 Version 2: PHP/FI 1997-2000 Version 3: PHP Mai 2000 Version 4: PHP 4
Was ist PHP? Sprachfamilie weborientierter Skriptsprachen Merkmale zweckgebundene und interpretierte Sprachen kurze Entwicklungszeiten vereinfachte Syntax dynamische Typisierung Trennung von Layout und Programmlogik automatische Speicherverwaltung 5
Was ist PHP? PHP als weborientierte Skriptsprache interpretierte Sprache, aber Interpiler Syntax an C angelehnt auf serverseitige Ausführung fokussiert benötigt keine Bibliotheken oder spez. Compilerdirektiven Datentypen werden automatisch erkannt Garbage Collection unterstützt Objektorientierte Programmierung 6
Was kann PHP? Datenfluss 7 Abbildung 1: Datenfluss
Einsatzgebiete Was kann PHP? Personalisierung der Web-Inhalte durch zugeschnittene Informationen und Nachrichten Shopsysteme - Bestellvorgänge, Anzeige aktueller Warenbestände Content Management Systeme 8
Was kann PHP? Fähigkeiten Auswertung von HTML-Formularen Cookies dynamische Generierung von Grafiken, PDF,... Datenbankzugriff Unterstützung versch. Protokolle, wie FTP, HTTP, SMTP, POP3,... 9
Was kann PHP? Syntax starke Anlehnung an Programmiersprache C Einfluss durch einige Konzepte von Perl und Java Gesamter Sprachumfang auf http://www.php.net/docs.php 10
Was kann PHP? Beispiel: Datenbankabfrage mit PHP db_connection DB: OKA TB: Studenten SELECT*FROM... MatrNr Name FB db_result 11... <?php...?> $db_connection = @mysql_connect( server", user, passw"); @mysql_select_db( OKA"); $db_result = mysql_query( "SELECT * FROM Studenten, $db_connection); mysql_close($db_connection);
Was kann PHP? Wie unterstützt der Sprachentwurf die allgemeinen Ziele: Verständlichkeit Zuverlässigkeit Effizienz Portabilität 12
Verständlichkeit - u.u. Sprache leicht erlernbar - Programme lassen sich leicht und schnell schreiben - Strukturierungsmechanismen vorhanden - kann schnell unübersichtlich werden, Programmund HTML-Code in einer Datei Zuverlässigkeit Was kann PHP? - Typüberprüfungen - Ausnahmebehandlung vorhanden 13
Was kann PHP? Effizienz - benötigt keine Bibliotheken oder spez. Compilerdirektiven - Bytecode höhere Ausführungsgeschwindigkeit Portabilität - PHP ist mit allen gängigen Webservern auf UNIX und Windows-Versionen verfügbar 14
Warum PHP? Vergleich PHP vs. JSP (Java Server Pages) Gemeinsamkeiten serverseitige Skriptsprache zur Einbindung in HTML-Seiten Seiten müssen gelesen und interpretiert werden plattformunabhägig gesamte Technologie frei erhältlich Unterschiede Programmierung erfolgt in Java echte Objektorientierung Ausführung auf Clientseite durch Applets möglich großer Ressourcenbedarf für Java-Laufzeitumgebung 15
Warum PHP? Geringer Lernaufwand - mit relativ wenig Lern- und Programmieraufwand zu leistungsfähigen Webanwendungen Plattformunabhängigkeit - Unterstützung aller aktuell relevanten Betriebssysteme und wichtigen Webserver Kosten und Support - Open Source und wird ständig weiterentwickelt - Mailinglisten und Foren Funktionsumfang - sehr viele vorbereitete Funktionen für den Web-Alltag 16
Quellenangabe Literatur: [Bar00] Barron, D. W.: The World of Scripting Languages. Wiley 2000 [LeTa03] Lerdorf, R., Tatroe, K.: Programmieren mit PHP. O`Reilly 2003 [WeHa04] Wenz & Hauser : Webservices mit PHP. Galileo Computing 2004 [LiWi03] Linke, M. & Winkler, P. :Das M+T Computerlexikon. Heyne 2003 [phpman] PHP Handbuch http://www.php.net/docs.php 2004 Abbildungen: 1. Datenfluss http://www.php.net 2. PHP Logo auf Folie 12 http://www.php.net 3. MySQL Logo auf Folie 12 http://www.php-center.de 17
Informationen zu PHP WWW: Offizielle PHP Seite http://www.php.net Zend http://www.zend.com Offizielle PHP Dokumentation http://www.php.net/docs.php PHP FAQ http://www.koehntopp.de/php/ PHP News http://lists.php.net ThinkPHP http://www.think-php.de PHP Verein http://www.php-ev.de PHP Usergroups http://www.phpug.de PHP Center http://www.phpcenter.de PHP Homepage http://www.php-homepage.de Dynamic Webpages http://www.dynamic-webpages.de 18