WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » PHP Fümpf » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Manticor
Danke. Das ist doch schonmal was.
von Philipp Gérard
Prinzipiell geht es nur darum, dass nun spezielle Rechte für Funktionen und Variablen eingeführt werden, die für die Vererbung in PHP elementar wichtig sind. Und da OOP ohne childs usw. wenig Sinn macht...

Eben gefunden:

Sterling Hughes hat vor einigen Tagen in New York PHP5 vorgestellt. PHP wird mit dieser Version nun endlich erwachsen. Es unterstützt richtige objektorientierte Programmierung, man kann aber trotzdem noch ähnlich wie in PHP 4 programmieren. Mit der neuen Version schreibt sich PHP ähnlich wie das trotzdem noch viel komplexere Java. Die meisten Neuerungen werden den „normalen“ PHP-Entwickler nicht betreffen, sie lohnen sich nur bei sehr umfangreichen Projekten.
Nun zu den Neuerungen in PHP5:

Namespaces:
Namespaces haben in PHP5 eigentlich nur eine Aufgabe, die hilft, die Übersicht über den Quellcode zu verbessern – wirkliche Funktionalität bieten sie nicht. Man kann jetzt die Klassen in Namespaces stecken, um eine Art Verzeichnisbaum der Klassen aufzubauen. So muss man nicht immer alle Klassen etwa
$e = new LanguagesPerlExecute();
Nennen, man kann stattdessen schreiben
$e = new Languages:Perl::Execute;
Hier ein Beispiel:

<?php
namespace Languages:Perl {
class Execute {
function statement($cmd) {
$cmd = escapeshellcmd($cmd);
system("echo $cmd | perl");
}
}
class Insult {
function oneLiner() {
echo "Perl is soo ugly, even ";
echo "Microsoft can't embrace it";
echo "
<br />
";
}
}
}

$e = new Languages:Perl::Execute;
$e->statement("print 'Hello World!'");
echo "
<br />
";
$i = new Languages:Perl::Insult;
$i->oneLiner();
?>


Exception handling:
PHP5 bietet ein stark verbessertes Exception Handling. Das braucht man zum Beispiel, wenn man angepasste Fehlermeldungen an den Benutzer schicken will. Neu hinzugekommen ist auch das aus C++/Java bekannte try {} catch{}. In den try-Block schreibt man alle Anweisungen, die normal ausgeführt werden sollen. Wenn aber die Ausführung einer Anweisung fehlschlägt, zum Beispiel weil eine Datei nicht gefunden werden kann, werden statt den Befehlen im Try-Block die Befehle im Catch-Block ausgeführt.
So kann man den Code übersichtlicher halten und Fehlermeldungen viel leichter Abfangen oder Vermeiden. Das ganze kann z. B. so funktionieren:

<?php
define('NUM', 10);
try {
if (NUM < 20) {
throw new Exception(NUM . " is too small!");
}
} catch (Exception $e) {
echo $e->getMessage();
echo "
<br />
";
}
?>
Um eigene Fehlermeldungen zu “throwen” kann man mit Hilfe der Objektorientierten Programmierung eine eigene Fehlerklasse erzeugen.

Object Orientation:
PHP5 hat eine neue Objektorientierte Programmierung spendiert bekommen. Dazu zählen im Wesentlichen folgende neue Features:
- Konstruktoren/Destruktoren
- Zugriffskontrolle auf Variablen der Klasse mittels private/protected/public-Schlüsselwörtern (wie auch in C++/Java)
- Statische Variablen/Funktionen in Klassen
- final-Keyword: Mit dem Keyword final kann man Variablen „finalisieren“. Das bedeutet, dass man diese nach der Definition nicht mehr ändern kann, ähnlich wie Konstanten
Definition: final public $name = „value“;
- Objekte/Funktionen überladen
- Abstrakte Funktionen (Funktionen ohne Inhalt, die z. B. nach einer Vererbung überschrieben werden können)
- Objekte „klonen“:
<?php
class sheep {
var $name;
}

$start = new sheep;
$start->name = "Dolly";
$new = $start->__clone();
$new->name = "Molly";
?>

__autoload()-Funktion
Man kann nun eine Funktion mit dem Namen __autoload() definieren. Diese wird automatisch zu Beginn der Ausführung der PHP-Datei ausgeführt. In dieser Funktion kann man zum Beispiel Funktionsbibliotheken laden, ohne die nicht weitergearbeitet werden kann. Wenn die Ausführung von __autoload() fehlschlägt, wird ein Fehlermeldung an den Client zurückgegeben.

Streaming-Funktion
Man kann jetzt einen Streaming-Server mit PHP5 betreiben.
Beispiel:
<?php
$s = stream_socket_server('tcp://localhost:8080');
while ($client = stream_socket_accept($s)) {
$line = fgets($client);
echo $line;
}
?>

Es gibt noch etliche Neuerungen mehr, als die hier aufgelisteten. Das sind vor allem Sachen, die mit Klassen zu tun haben. PHP5 hat jetzt ein vollständiges objektorientiertes System, wie auch Hochsprachen (C++/Java) eins haben.

Alles in allem ist PHP5 wesentlich komplexer geworden, vor allem durch die OOP. Für C++/Java-Programmierer ist der Umstieg absolut kein Problem, da viele Sachen sehr ähnlich wie in diesen Sprachen funktionieren. Wer neu ist, sollte die OOP auf später verschieben.
von Manticor
Also mit der rudimentären OO-Programmierung von PHP4 kam ich gut klar und die Theorie - denke ich - ist mir auch in den Grundzügen bekannt. Schon schade, wenn das nicht ausreicht, um mehr erklärt zu bekommen.
von Philipp Gérard
wenn du den link nicht verstehst, brauchst du die neuerungen von php5 auch nicht
von slackerbitch
schau dir eine allgemeine einfuehrung in die oop an, wenn du mit dem link auf die php seite nicht weiter kommst. wenn du dann verstehst, was das alles eigentlich sein soll (also du die noetige theorie hast), faellt es dir auch leichter, es mit hilfe solcher seiten (die sich meistens an leute richten, die diesen background haben) umzusetzen.
oder du wartest auf die ersten php5 buecher. ;)

Nach oben