|
|
|
|
|
|
|||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
|
|
LinkBack | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink) |
|
Gast
Beiträge: n/a
|
Hallo werte Fortgeschrittene!
(Ich habe um sicherzugehen hier posten zu dürfen das gesamte Manual Kapitel 17 Klassen und Objekte nocheinmal durchgelesen!) Eigentlich geht es um ein recht banales Problem: Ich habe eine Klasse die einen Basisteil darstellt und eigenständig läuft! So jetzt will ich quasi eine Extension für diese Klasse schreiben! Diese Klassenextension soll selber eine gleichnamige Klasse sein und die gesamten Variablen und Funktionen aus der Basisklasse in der anderen Datei holen! Und genau da habe ich Schwierigkeiten! Also nochmal etwas Schematischer: 2 Klassen in unterschiedlichen Dateien Die Und zum schluss: Geht das? Ist das realisierbar! |
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Gast
Beiträge: n/a
|
Also erweiterung geht, per extends .. die frage ist, was passiert wenn die
neue klasse den gleichen namen hat, wie die alte klasse .. ich würd spontan sagen, ausprobieren, php wird definitiv meckern, wenn das nicht erlaubt ist. was handfestes hab ich dazu leider auch nicht .. ich kann nur aus dem ver- halten bei funktionen ableiten, die man ja auch nicht 2x mit selben namen de- finieren darf. |
|
|
|
#3 (permalink) |
|
Gast
Beiträge: n/a
|
hi,
so wie du dir das vorstellst ist das leider nicht realisierbar. es hört sich so an als wolltest du ein art plugin system haben mit dem du eine basis klasse relativ beliebig erweitern kannst. bevor ich hier aber loslege mal eine frage : hast du schon erfahrung mit oo programmierung? wenn nicht dann solltest du dir erstmal die basics aneignen (:. Sike |
|
|
|
#4 (permalink) | ||||
|
Gast
Beiträge: n/a
|
Zitat:
Zitat:
Zitat:
Zitat:
|
||||
|
|
|
#5 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 15.08.2004
Beiträge: 2.473
![]() |
Damit, dass es mehrere Klassen gibt, die gleich heissen, habe ich ganz üble Erfahrungen gemacht (bei Code von jemand anders), das würde ich lassen.
Damit die Klassen nicht gleich heissen müssen, würde ich über eine Factory gehen, anstatt die Klasse direkt über new zu instanziieren.
__________________
mod = master of disaster |
|
|
|
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 21.05.2008
Beiträge: 1.531
![]() |
Genau:
Vielleicht überdenkst du auch einfach nochmal deine Programmlogik. Lässt sich bestimmt auch anders realisieren. Derartige "Probleme" hatte ich z.B. noch nie gehabt. Du weißt ja, alle Wege führen nach Rom und verschiedene Logiken bringen letztendlich das Gleiche Ergebnis. |
|
|
|
|
|
#7 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 27.10.2003
Beiträge: 530
![]() |
Kann mir vielleicht jemand erklären wie das mit den Fabrikklassen funktioniert?
Oder gibt's da n gescheites Tutorial? Ich hab da irgendwie nix gefunden
__________________
kintzebros.de | KintzeBros Home Entertainment 2061. Nach dem Frieden | kurzfilm Paula | spielfilm |
|
|
|
|
|
#8 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 21.05.2008
Beiträge: 1.531
![]() |
Seltsam, Googles erster Treffer ergibt sofort eine ordentlische Beschreibung:
http://www.google.de/search?hl=de&q=...le-Suche&meta= |
|
|
|
|
|
#9 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 15.08.2004
Beiträge: 2.473
![]() |
Erstmal würde ich anmerken, dass es zwei GoF-Design-Patterns mit "Factory" im Namen gibt, nämlich die "Abstract Factory" und die "Factory Method". Die Abstract Factory ist hier falsch. Eine "Factory Class" gibt es nach GoF nicht.
Die Factory Method ist nicht viel mehr als eine Methode, die ein Objekt erstellt und zurückliefert, wobei unter verschiedenen Umständen unterschiedliche Objekte geliefert werden. Die vorgeschlagene Implementation aus dem Jahre 1994 sieht vor, dass diese Factory Method eine Methode einer Klasse ist und bei Bedarf in einer davon abgeleiteten Klasse überschrieben wird. Für C++ ist aber z.B. auch vorgeschlagen, STL-Templates zu verwenden, um zu vermeiden, dass man eine neue Sub-Klasse erstellen muss, nur um die eine Methode zu überschreiben. Auch wenn es anders vorgesehen ist, Erich Gamma wird sich schon nicht nachts im Bett umdrehen, nur weil man ein wenig dreckig eine Funktion irgendwie dazu bringt, ein Objekt der richtigen Klasse zurückzuliefern, z.B. indem man über class_exists() abfragt, ob die zweite Klasse existiert und dann diese statt er ersten verwendet, oder indem der Name der zu instanziierenden Klasse in einer Variable abgelegt wird. Ebenso sollte die Factory eigentlich ein Objekt sein, wobei man eben dieses Objekt austauschen würde, wenn die Factory andere Objekte liefern soll. So lange man kein ordentliches OOP macht und die verschiedenen Factories, die man braucht, ordentlich mitschleift, z.B. in Container-Objekten, ist es aber durchaus legitim, die Factory Method statisch aufzurufen, oder gar als einfache Funktion (ganz ohne Klasse), wobei mir der statische Aufruf doch lieber wäre.
__________________
mod = master of disaster |
|
|
|
|
|
#10 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 21.05.2008
Beiträge: 2.150
![]() |
Zitat:
Überlicherweise statisch aufgerufen wird DB :: connect(), mit einem DSN als Paramenter. Zurückgeworfen wird dann ein Objekt der Klassen DB_Mysql, DB_Mssql, DB_Oracle etc ....je nachdem, welche Art Server der DSN referenziert. |
|
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| zentrale Klasse für Datenbankanbindung | Crypi | PHP Tipps 2008 | 4 | 01.07.2008 11:13 |
| Variable aus Klasse herausbekommen | GSJLink | PHP Tipps 2008 | 7 | 16.02.2008 22:25 |
| String-Parser Klasse - was muss rein? | Matze | PHP Tipps 2007 | 2 | 08.04.2007 22:14 |
| mehr als eine Klasse einbinden | Alpha Centauri | PHP-Fortgeschrittene | 4 | 13.04.2006 20:56 |
| Instanz einer Klasse in SessionVariable | PHP-Fortgeschrittene | 2 | 21.02.2006 00:18 | |
| aus einer funktion auf funktion anderer klasse zugreifen | seejay | PHP Tipps 2006 | 3 | 05.01.2006 10:37 |
| Klasenname einer nicht instanziierten Klasse | DerDesian | PHP Tipps 2007 | 9 | 30.11.2005 13:13 |
| Instanz einer Klasse in einer anderen Klasse verwenden | Buhmann | PHP-Fortgeschrittene | 7 | 28.10.2005 23:12 |
| Führerschein für Klasse A+B.. Preis OK??? | Off-Topic Diskussionen | 20 | 13.07.2005 18:44 | |
| Rückgabewert auf einer Klasse anders als in der Klasse | micbur | PHP Tipps 2005-2 | 6 | 10.06.2005 15:06 |
| Problem mit Übergabe einer Klasse in PHP4 | PHP-Fortgeschrittene | 10 | 08.01.2005 21:00 | |
| [Erledigt] Instanz bilden innerhalb einer Klasse | PHP Tipps 2004 | 7 | 11.12.2004 12:58 | |
| Brauche Hilfe bei meiner ersten Klasse | PHP-Fortgeschrittene | 9 | 24.09.2004 17:09 | |
| Klassenobjet in anderer Klasse benutzen | inu | PHP Tipps 2004 | 6 | 19.09.2004 10:58 |
| Klasse ändern | UniQ | PHP Tipps 2004 | 5 | 24.08.2004 14:46 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php gleichnamige klasse redeclare, klasse in klasse aufrufen, php klassen unterschiedlcihe dateien |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.