![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 15.07.2007
Beiträge: 5
|
Hallo bin gerade etwas am verzweifeln .. wieso klappt diese tolle klasse denn nicht also das verbinden an sich klappt schon nicht.. PHP-Code: PHP-Code: Geändert von Stefan125 (12.09.2007 um 18:44 Uhr). |
| | |
| | Nach oben #2 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.642
|
deine Methode connect() liefert ja nichts zurück, dementsprechend ist deine IF-Abfrage immer false. Vielleicht eher so? PHP-Code:
__________________ I did it my way - Senseless-Blog Geändert von WarrenFaith (12.09.2007 um 19:00 Uhr). |
| | |
| | Nach oben #4 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
Die von mir benutzte Klasse benötigt keinen expliziten connect-Aufruf. Dies wird bei einem query der an die db geschickt werden soll asutomatisch nachgehohlt, sofern noch keine Verbindung vorhanden ist. Dann wird versucht eine solche zu erstellen. Wenn das nicht gelingt, dann gibt es einen entsprechenden Abbruch. Der Vorteil, den ich darin sehe ist der, dass man nicht explizit connecten muss. Der Nachteil liegt darin, dass bei jedem query geprüft werden muss, ob die Verbindung noch/schon besteht. |
| | |
| | Nach oben #5 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Hi. Warum übergibst du die Verbindungsdaten nicht einfach im Konstruktor und wirfst eine Exception, falls die Verbindung fehlschlägt. Eine Verbindung on-the-fly würde ich nicht umsetzen, da du die Exception dann bei jeder Abfrage erwarten musst. Eher würde ich das Objekt eben erst bei Bedarf bauen lassen. Weiter macht es Sinn, ein Ergebnis-Objekt einer Anfrage zurückzugeben, anstatt eine Methode fetchRow() ohne Parameter anzubieten. Funktioniert natürlich, kann aber auch zu Konflikten führen und ist eben keine in sich wirklich stimmige API. Methoden wie numRows() oder fetchRow() kannst dann in dieses Ergebnis-Objekt verschieben. Basti |
| | |
| | Nach oben #6 |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 132
|
Soetwas finde ich grundsätzlich kontraproduktiv, da sich die Anwendung um die Zugangsdaten zur Applikation kümmern muss und man Quellcode ändern muss um eine Applikation z.B. auf einer neuen Umgebung online bringen zu können. Da das variable Daten sind, sollten Verbindungsdaten in ein Config-File. Hier ist es ratsam, der MySQL-Klasse eine Möglichkeit zu geben, ihre Verbindungsdaten an Hand der aktuell eingesetzten Umgebung und der aktuellen Applikation einzulesen. Ich erwarte das so: PHP-Code:
__________________ Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | Nach oben #7 | |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
| Zitat:
Kann ich nicht nachvollziehen. Zum einen macht es eine Klasse unabhängiger, wenn die Daten im Konstruktor übergeben werden und nicht aus einem Config-Singleton mit definierter API gezogen werden müssen und zum anderen hab ich z.B. meine MySQL-Klasse schon seit Monaten nicht mehr angefasst, oder irgendwo Verbindungsdaten übergeben, obwohl meine Anwendung natürlich auf mehreren Servern mit je mehreren Datenbanken läuft. Das steht also in keinem Widerspruch. Ich arbeite z.B. mit einer DAO-Factory, die einmal die Verbindung baut, sich dazu die Daten aus einem Config-Objekt zieht und diese Verbindung eben bei dem Bau jedes DAO diesem mitgibt. Basti | |
| | |
| | Nach oben #8 | |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 132
| Zitat:
__________________ Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | Nach oben #9 | ||
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
| Zitat:
Basti | ||
| | |
| | Nach oben #10 |
| Neuer Benutzer Registriert seit: 18.09.2007 Ort: Berlin
Beiträge: 1
|
Hallo allerseits. Damit sich niemand wundert, wer sich da zu Wort meldet: Ich bin neu hier, auch wenn ich das Geschehen in dem Forum schon eine kleine Weile mitverfolge. @dr.e.: Meinst du das im Prinzip so? Oder bin ich auf dem falschen Dampfer? PHP-Code: Grüße, Jean |
| | |
| | Nach oben #11 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Das hier wäre schonmal ein guter Schritt, um die Abhängigkeit transparent zu machen: PHP-Code: Es sei denn natürlich, die Klasse soll eh nur in der einen Anwendung verwendet werden. Dann wiederum fände ich diese Variante gut, weil die Abhängigkeit zum Konfigurations-Objekt sichtbar ist. Basti |
| | |
| | Nach oben #12 |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 132
|
Hallo ihr beiden, die Transparenz und die Wiederverwendbarkeit schaffe ich anders. Ich erzeuge meine Objekte, die stets von einem zentralen Basis-Objekt erben, mit einigen Informationen zur aktuell ausgeführten Applikation. Jedes Objekt kennt seinen Namespace (Ordner, in dem es abgelegt ist), den Context der Applikation und einige andere Kenner wie z.B. Sprache und Umgebung (Live, Stage, ...). Für genau den Fall der jeweiligen Applikation muss ein Config-File angelegt werden und die Klasse zieht sich mit diesen Kennern per Standard-Config-Interface seine Konfiguration. Das kann ich innerhalb jeder Klasse über die Methode $this->__getConfiguration() machen. Diese zieht sich den ConfigurationManager und bestückt diesen mit den oben genannten Attributen und bekommt dann die jeweilige Config oder null, wenn diese nicht existiert (siehe http://www.adventure-php-framework.o...73fa4bbc767c87). Diesen Mechanismus kann ich in allen Klassen verwenden und Transparenz und Wiederverwendbarkeit sind ohne Probleme gegeben.
__________________ Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | Nach oben #13 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Es geht doch nicht um die Wiederverwertbarkeit innerhalb eines Frameworks. Da kannst du das doch zusammenbacken wie du lustig bist. Auch geht es nicht um Transparenz im laufenden System, sondern in UML-Diagrammen und API-Dokumentationen ist doch klar. Basti |
| | |
| | Nach oben #14 | |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 132
| Zitat:
__________________ Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MySQL 5.1 kommt in die Beta-Phase | Ben | Nachrichten | 1 | 02.03.2006 14:31 |
| Problem bei Verwendung von IF bei MySQL | Ben | Datenbanken | 2 | 22.12.2005 16:00 |
| Problem mit class | Garnele | PHP-Programmierung | 12 | 12.10.2005 17:05 |
| Progress Class - Problem mit Flush | Chr!s | PHP-Programmierung | 0 | 27.09.2005 21:59 |
| Problem mit Zugriff von externer class auf Panel | Treter_Peter | Desktop-Applikationen und Grafik | 2 | 24.12.2004 13:22 |