Rechen- und Kommunikationszentrum (RZ) Die Skriptsprachen PHP und Ruby Bettina Görzen Rechen- und Kommunikationszentrum Seminarraum 001 Stand: 18.01.2011.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

MySQL.
Komplexpraktikum Medieninformatik „Implementierung eines Präsentationstools für das Reformprojekt ProblemOrientiertes Lernen“ Nebenfachausbildung Gesundheit.
Objektorientierte Programmierung
Allgemeine Technologien II
Seite 1Maria, Philipp, Herbert Seite 1 Fitnessplaner Ziele: >Fitnessplaner für Onlinebetrieb >Registrierung >individuelle Trainingsplanerstellung.
Ruby on Rails im Überblick
FH-Hof Einbindung von JavaScript Anweisungen
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Dynamische Webseiten mit PHP
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Das Test-Framework JUnit
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Transaction Script Software Component Technology for Distributed Applications.
DVG Klassen und Objekte
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
YouTube5 .0 Projektpräsentation
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Aichinger Christian, Strasser Jürgen
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Wir bauen uns eine Webapplikation!
JavaScript.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
UniDASH 2.0 organize yourself Robert Koch MMT B2010 FH Salzburg.
Typo3 Templates und TypoScript
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
CGI (Common Gateway Interface)
SQLite und XML in PHP 5.
Einführung in PHP 5.
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.
TypoScript.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Objektorientierte (OO) Programmierung
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
J.GehlenDept. of Medical Informatics 1 Department of Medical Informatics, Uniklinik RWTH Aachen, Germany Sichere Mobile Datenerfassung.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Statistische Auswertung und Darstellungsmöglichkeiten von Messdaten Seminarvortrag von Christian Gorgels im Studiengang Scientific Programming.
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
Entwicklung einer Webapplikation mittels HTML, PHP, MySQL, jQuery, und Smarty-Templates am Beispiel einer Studienarbeitsverwaltung.
CMS … Content Management System. Erster Schritt Das CMS funktioniert (leider) nicht mit allen Browsern. Eine fehlerfreie Bearbeitung ist mit Mozilla firefox.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Java Testtools: HTTPUnit
Veranstaltungskalender
Eine Präsentation von Sandro Schluep und Leon Wink.
Masterfolie für den LK Hildesheim
Programmiersprachen Tim, Luca, Ricky & Manuel.
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
1. Die rekursive Datenstruktur Liste 1
Übersicht und Benutzung von Sphinx
Wissenschaftliches Projekt
Neuigkeiten in ILIAS 5.3 Informationen des Teams e-Learning, Campus IT
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

Rechen- und Kommunikationszentrum (RZ) Die Skriptsprachen PHP und Ruby Bettina Görzen Rechen- und Kommunikationszentrum Seminarraum 001 Stand: Version: Betreuer: Prof. Dr. rer. nat. Volker Sander 2.Betreuer: Herr Benedikt Magrean

Die Skriptsprachen PHP und Ruby Folie 2 PHP  Bekannte Sprache für Webseiten-Programmierung  Wird häufig verwendet  Für viele Projekte verwendet  z.B. RWTH-Seiten  Facebook Ruby  Neue Sprache- wenig bekannt  Große Projekte bereits erstellt  YellowPages  Twitter  Interesse wächst stark an Motivation

Die Skriptsprachen PHP und Ruby Folie 3  Historische Entwicklung  Allgemeines über PHP und Ruby  Design & Struktur  Erweiterbarkeit  Sicherheit  Frameworks  Testen  Zusammenfassung & Aussicht Inhalt

Die Skriptsprachen PHP und Ruby Folie 4 PHP Ruby Historische Entwicklung von PHP und Ruby 1994: Rasmus Lehrdorf entwickelt die Sprache Unter dem Namen PHP/FI wird die Sprache veröffentlicht (zusätzliche Funktion: SQL-Befehle) PHP3: neue Strukturierung PHP2: schnelles und einfaches Tool zur Webseiten- Entwicklung PHP4: Superglobals, höhere Geschwindigkeit durch Parser- /Ausführungsmachine PHP5: XML-Support erweitert, Sicherheits- und Stabilitäts- Probleme behoben : Yukihiro Matsumoto entwickelt Ruby 1995: Ruby-Version 0.95 erscheint (in Japan) Ca. 2000: Die Sprache wird ins Englische übersetzt, zugänglich für den Westen Ruby 1.0 ersteint : Framework Rails erscheint (programmiert in Ruby) Aktuelle Version 1.9.2: Blockstruktur, IPv6 wird unterstützt

Die Skriptsprachen PHP und Ruby Folie 5 Allgemeines über PHP und Ruby

Die Skriptsprachen PHP und Ruby Folie 6  Verschiedene Operatoren  Besonderheit: Logische Operatoren AND, OR und XOR  Superglobals  Session & Cookie  Post & Get  Objektorientierung nicht notwendig aber möglich  Einfach-Vererbung  Interfaces  Abstrakte Klassen Design & Struktur von PHP

Die Skriptsprachen PHP und Ruby Folie 7  PHP und Datenbanken  MySQL, Oracle, Firebird, sqLite etc. Design & Struktur von PHP <?php #nötige Variablen erstellen $host = „localhost“;//Adresse des Datenbankservers, meistens localhost $user = „root“;//Ihr MySQL Benutzername $pass = „“;//Ihr MySQL Passwort $db = „Tabelle“;//Name der Datenbank #Verbindung zur Datenbank herstellen und Datenbank-Tabelle auswählen $link = mysql_connect($host, $user, $pass) or die („Keine Verbindung zur Datenbank möglich.“); mysql_select_db ($db, $link); #Daten auslesen $abfrage = „SELECT * FROM Tabelle“; $ergebnis = mysql_query ($abfrage); #Array ausgeben lassen print_r ($ergebnis); ?>

Die Skriptsprachen PHP und Ruby Folie 8  Neue Operatoren (===, **)  Änderungen in Kontrollstrukturen  Case  Verbesserung der Lesbarkeit  Blockstruktur durch Schlüsselwörter  Kein expliziter Rückgabewert  Einfachvererbung  Nutzung von Modulen Design & Struktur von Ruby #Beispiel für ein Modul Module bremse def handbremse „Ich bin eine Handbremse!“ end class Auto #Modul bremse in der Klasse nutzen include bremse Methode def fahren puts „Ich fahre…“ end mein_auto = Auto.new puts mein_auto.fahren #  Ich fahre… puts mein_auto.handbremse #  Ich bin eine Handbremse!

Die Skriptsprachen PHP und Ruby Folie 9  Formulare durch fertige Codeblöcke erstellen Design & Struktur von Ruby require „cgi“#cgi nutzen cgi = CGI.new#neues cgi-Objekt erstellen value = cgi [‚formularfeld_name‘]#Einer Variablen das Formularfeld zuweisen felder = cgi.keys#Array mit Formularfelder-Namen #Gibt true zurück, wenn „feld-name“ im Formular enthalten ist cgi.has_key? (‚feld_name‘)

Die Skriptsprachen PHP und Ruby Folie 10  Datenmissbrauch  Symmetrische, asymmetrische oder Einweg-Verschlüsselung  In Datei- und Verzeichnisstrukturen  Wichtige Daten nicht in öffentliches Verzeichnis legen  Authentifizierung  SQL-Injektion  Cross-Site-Scripting Mögliche Probleme bei HTML-Formularen Eingabevalidierung

Die Skriptsprachen PHP und Ruby Folie 11 Möglichkeiten zur Sicherung der Daten im Netz Sicherheit: PHP Ruby PHPRuby require() für nicht-öffentliche Dateien keine Methoden gegen SQL-Injektion oder Cross-Site-Scripting sha1() als Hashcodierer durch Framework Rails einige Möglichkeiten htmlspecialchars() gegen Cross-Site- Scripting indirektes SQL-Statement gegen SQL- Injektion keine automatische Eingabevalidierung vorhanden durch ein „h“ vor der HTML-Variablen werden HTML-Tags herausgefiltert User.find (:first, :conditions => [„login = ? AND passwort = ?“, params[:name], params[:password]])

Die Skriptsprachen PHP und Ruby Folie 12  Bibliotheken mit offenem Quellcode  PEAR   Javascript-Bibliothek Prototype  Ajax-Unterstützung  Widget-Bibliothek  GUI-Elemente, z.B. Menü, Kalender oder Texteditor Erweiterbarkeit PHP

Die Skriptsprachen PHP und Ruby Folie 13  Über Bibliotheken  Ruby-Toolbox   Bibliothek einbinden: Gem install _name_  Ajax-Unterstützung  Framework, z.B. Rails  Prototype Erweiterbarkeit Ruby

Die Skriptsprachen PHP und Ruby Folie 14 Frameworks

Die Skriptsprachen PHP und Ruby Folie 15 Konzepte  „Don`t repeat yourself“-Konzept  Flexibel erweiterbarer Quellcode  Verhinderung von doppeltem Code  „Model-View-Controller“-Konzept  Model: Daten-Speicher, unabhängig von Präsentation und Steuerung  Controller: Verbindung der 3 Strukturen, Steuerung des Ablaufs  View: Darstellung der Daten, kennt Model und Controller  Konvention vor Konfiguration Rails- Framework für Ruby

Die Skriptsprachen PHP und Ruby Folie 16 Typische Verzeichnis-Struktur bei Rails app controllersdb helperslib modelsconfig viewsvendor public images javascript stylesheets test fixtures integration unit functional Rails- Framework für Ruby

Die Skriptsprachen PHP und Ruby Folie 17  Kein Framework hauptsächlich durchgesetzt  CakePHP  Automatische Validierung der Daten  MVC-Konzept, DRY-Konzept, Konvention vor Konfiguration  Ziel: vergleichbares Framework wie Rails für Ruby auch für PHP zu erschaffen  CodeIgniter  Nach MVC-Modell  Einfache Einarbeitung  Ziel: mehr Zeit für Kreativität, weniger für Standardfunktionen Frameworks für PHP 1 von 3

Die Skriptsprachen PHP und Ruby Folie 18  Zend  Eines der ältesten Frameworks  Über 10 Millionen Downloads  Sehr gut getestet, da es schon lange besteht  Komponenten, die Fehler auffangen (z.B. bei Authentifizierung)  Ziel: Gute und übersichtliche Struktur Frameworks für PHP 2 von 3

Die Skriptsprachen PHP und Ruby Folie 19 Frameworks für PHP 3 von 3

Die Skriptsprachen PHP und Ruby Folie 20 Testen

Die Skriptsprachen PHP und Ruby Folie 21  Testfälle oder Testklassen selbst schreiben  interne Methoden zum Testen nicht vorhanden  PHPUnit  Isolierte Tests  Berichterstattung welcher Teil eines Objektes fehlerhaft ist PHP-Code testen class BankdatenTest extends PHPUnit_Framework_TestCase { protected $bankdaten; protected function setUp(){ $this->bankdaten = new Bankdaten('Musterbank', , ); } public function testEnthaeltAttributBankinstitut(){ $this->assertObjectHasAttribute('bankinstitut', $this->bankdaten); } public function testInitBankleitzahl(){ $this->assertAttributeEquals( , 'bankleitzahl', $this->bankdaten); }

Die Skriptsprachen PHP und Ruby Folie 22  Paket „test/unit“  intern zur Verfügung gestelltes Paket zum Testen  rspec  Bibliothek zum Testen Ruby-Code testen # bowling.rb class Bowling def hit (pins) end def score 0 end # bowling_spec.rb require ‚bowling‘ describe Bowling, „#score“ do it „returns 0 for all gutter game“ do bowling = Bowling.new 20.times { bowling.hit(0) } bowling.score.should == 0 end

Die Skriptsprachen PHP und Ruby Folie 23  PHP  Viel eingesetzte Sprache bei Webseiten  Vielzahl an Bibliotheken  PHP nutzbar bei den meisten Browsern, in vielen Formaten  Ruby  Neue Sprache, nicht überall bekannt  Für große Projekte geeignet  Übersichtlichkeit  Verständnis durch einheitliche Bezeichner  programmieren und testen zeitgleich  Einfach lesbarer Quellcode  Objektorientiert Zusammenfassung

Die Skriptsprachen PHP und Ruby Folie 24  Bachelorarbeit:  DNS-Server der RWTH  Erstellung einer Webseite zur Verwaltung der Daten mit Ruby on Rails  Gründe für Ruby on Rails:  bestehende Projekte mit Ruby  Testbarkeit besser Ausblick

Die Skriptsprachen PHP und Ruby Folie 25       Quellen

Die Skriptsprachen PHP und Ruby Folie 26 Noch Fragen? Vielen Dank für Ihre Aufmerksamkeit!