Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Renate Sachs Geändert vor über 8 Jahren
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!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.