Von Java zu PHP. Einsteigerfragen...
MM
- php
Hallo Forum,
als eingefleischter Java-Entwickler muss ich mich nun mit PHP beschäftigen. Nach kurzer Einarbeitung bleiben noch einige Fragen offen, die Ihr mir vielleicht beantworten könnt. Dafür schon einmal vielen Dank im Vorraus!
Vielen Dank!
MM
- Gibt es in PHP auch abstrakte Klassen?
http://professionelle-softwareentwicklung-mit-php5.de/erste_auflage/oop.foundations.interfaces.html
- Gibt es Mehrfach-Vererbung?
Java hat keine Mehrfach-Vererbung oder? Deswegen ja die aufgeweichten Interfaces? http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=248&group=37
- Gibt es Interfaces?
http://www.phpbar.de/w/Interface
- Gibt es Polymorphie?
http://www.professionelle-softwareentwicklung-mit-php5.de/erste_auflage/oop.foundations.polymorphism.html
- Gibt es eine vernünftige Datenkapselung, oder ist immer alles public?
- Gibt es Exceptions?
http://de3.php.net/exceptions
echo $begrüßung;
- Gibt es in PHP auch abstrakte Klassen?
- Gibt es Mehrfach-Vererbung?
- Gibt es Interfaces?
- Gibt es Polymorphie?
- Gibt es eine vernünftige Datenkapselung, oder ist immer alles public?
- Gibt es Reflection-Mechanismes?
Handbuch-Kapitel: Classes and Objects (PHP 5)
- Wenn sowohl Cookie- als auch Formulardaten als Variablen abgelegt werden, was ist dann bei gleichnamigen Cookie-/Formular-Namen?
Handbuch-Kapitel: Predefined variables
- Gibt es Exceptions?
Handbuch-Kapitel: Exceptions
- Wie kann ich Blöcke synchronisieren (also verhindern, dass zwei gleichzeitige Anfragen sich in die Quere kommen)?
PHP-Scripte laufen parallel, ohne sich zu beeinflussen. Nur beim Zugriff auf gemeinsam genutzte Dinge, wie Filesystem, Datenbank, etc. müssen wie in jeder Programmierumgebung die üblichen Gegebenheiten beachtet werden.
- Kann ich asynchrone Verarbeitungen starten (Threats)? Angenommen der Nutzer stößt mit dem Aufruf einer Seite eine sehr lange Verarbeitung an. Kann ich dann eine Bestätigungsseite anzeigen und im Hintergrund die Verarbeitung laufen lassen?
PHP ist eine Sprache, die zur Webseitengestaltung erfunden wurde. HTTP sieht es nicht vor, Dinge auf dem Server im Hintergrund laufen zu lassen, und bei Fertigstellung sich beim Client zu melden. Threads sind deshalb in PHP nicht implementiert und auch für die (überschaubare) Zukunft nicht vorgesehen.
- Wie kann ich bei einem bestehenen Programm die Datenbank austauschen? Die ersten Beispiele, die ich gefunden habe, benutzen alle spezielle mysql-Befehle. Muss ich das Programm etwa umschreiben, wenn ich die Datenbank austausche?
Du meinst nicht nur die Datenbank sondern genauer gesagt das Datenbank-Managementsystem (DBMS). Historisch bedingt gibt es DBMS-Schnittstellen, die untereinander nicht kompatibel sind. Es gab und gibt Abstraktionsschichten, wie beispielsweise PEAR::DB/MDB und ADO. Und es gibt nun auch direkt in PHP enthalten PDO. Weiterhin ist es natürlich sinnvoll, seine eigenen (komplexeren) Projekte so aufzusetzen, dass die Datenzugriffe austauschbar gekapselt sind. Denn gelegentlich stößt man auch bei der Abstraktionsschicht an Grenzen und möchte diese gern austauschen.
- Gibt es ein vernünftiges Logging-Framework (wie Log4J für Java), bei dem ich zur Laufzeit z.B. den Loglevel konfigurieren kann?
Handbuch-Kapitel: Error Handling and Logging Functions. Ansonsten gibt es natürlich einige Frameworks, die auch Logging-Mechanismen beinhalten.
Bedenke immer: Verschiedene Systeme wurden nicht erfunden, dass dann immer alles analog zu anderen funktioniert. Versuche, die Philosopie hinter dem jeweiligen System zu verstehen und nicht mit dem Wissen aus System X das System Y meistern zu wollen, indem du es 1:1 auf es anzuwenden versuchst. Das führt gelegentlich zu Enttäuschung und unnötig komplexer Implementation.
echo "$verabschiedung $name";