Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Rechen- und Kommunikationszentrum (RZ) Die Skriptsprachen PHP und Ruby Bettina Görzen Rechen- und Kommunikationszentrum Seminarraum 001 Stand: 18.01.2011."—  Präsentation transkript:

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

2 18.01.2011Die 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

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

4 18.01.2011Die 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 1993-1995: 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 1996 2005: Framework Rails erscheint (programmiert in Ruby) Aktuelle Version 1.9.2: Blockstruktur, IPv6 wird unterstützt

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

6 18.01.2011Die 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

7 18.01.2011Die 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); ?>

8 18.01.2011Die 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!

9 18.01.2011Die 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‘)

10 18.01.2011Die 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

11 18.01.2011Die 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]])

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

13 18.01.2011Die Skriptsprachen PHP und Ruby Folie 13  Über 18. 000 Bibliotheken  Ruby-Toolbox  http://ruby-toolbox.com/ http://ruby-toolbox.com/  Bibliothek einbinden: Gem install _name_  Ajax-Unterstützung  Framework, z.B. Rails  Prototype Erweiterbarkeit Ruby

14 18.01.2011Die Skriptsprachen PHP und Ruby Folie 14 Frameworks

15 18.01.2011Die 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

16 18.01.2011Die 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

17 18.01.2011Die 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

18 18.01.2011Die 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

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

20 18.01.2011Die Skriptsprachen PHP und Ruby Folie 20 Testen

21 18.01.2011Die 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',28044322,434542534); } public function testEnthaeltAttributBankinstitut(){ $this->assertObjectHasAttribute('bankinstitut', $this->bankdaten); } public function testInitBankleitzahl(){ $this->assertAttributeEquals(28044322, 'bankleitzahl', $this->bankdaten); }

22 18.01.2011Die 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

23 18.01.2011Die 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

24 18.01.2011Die 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

25 18.01.2011Die Skriptsprachen PHP und Ruby Folie 25  http://adventure-php-framework.org/Seite/055-PHPFrameworks-im-Test-7  http://basicwebapplications.com/  http://de.wikipedia.org/wiki/Ajax_(Programmierung)  http://rubyonrails.org/  http://rubygems.org/  http://www.phpunit.de/manual/2.3/de/ Quellen

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


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

Ähnliche Präsentationen


Google-Anzeigen