Portal > Foren > PHP > PHP-Programmierung > DB Klasse Problem, vererben, kombinieren
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 04.02.2006, 20:10 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 285
Standard DB Klasse Problem, vererben, kombinieren

Hallo,
Ich habe eine DB Klasse und das Buch prof software entwicklung mit php5. Meine Klasse find ich eigentlich ganz ok. Allerdings ist in dem Buch ja auch ein Beispiel drin. Jedoch wird bei einigen mysql Befehle die $connection mitgegeben. $result und $connection werden dabei mit is_resource geprüft.

Fand ich ne gute Sache und bin hingegangen um meine Klasse ein bisschen anzupassen, also genauer mit $connection und $result Prüfung.

Dann habe ich verschiedene andere Klassen, welche von der DB Klasse erben (Authentication). Allerdings nach einigen Tests hab ich das ganze mal ganz einfach gemacht...und festgestellt das die Abfragen in den unteren Klassen nicht mehr funktionieren, wenn ich genauer mit ner Verbindungskennung rummache. Hab ich auch schon alles auf protected und so gestellt hat irgendwie nichts gebracht...

Jetzt bin ich am überlegen das anders mit zu organisieren aber ich weiß nich so recht wie es am geschicktesten ist. Tatsache ist das ich 4-5 Klassen habe in denen DB Queries benötigt werden, also erben diese Klassen von der DB Klasse.

Dann gibts ja noch Objekte in Objekte aber dann müsste ich ja bei jedem machen einer Instanz beispielsweise die mysql Verbindungsdaten miteinbringen.

Jemand irgendwie Ratschlage bezgl. der Klassen und der Verbindungskennung?
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 00:12 Nach oben    #2
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.203
Standard

und global ne instanz speichern ? $GLOBALS['_mysql'] = &$instanzdeinerConfigdaten;
oder halt direkt wenn du mit nur einer instanz der mysql-klasse ausskommst (im endeffekt ja resourcenschonender) dann direkt die instaz global zugängig machen und innerhalb der klassen kannst du dann ja $this->_mysql = &$GLOBALS['_mysql'];

ist nur ne möglichkeit, wie sauber toll oder OOP-konform das ist / wäre muss dir jemand anderes sagen.

mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 11:34 Nach oben    #3
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 539
Standard

könntest du einfach mal ein bischen code posten, dann kann man besser erkennen wie genau du das mit der klasse gemacht hast...
ich verstehe nämlich noch nicht so ganz, warum alle klassen die ein query ausführen von der db-klasse erben sollen.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 11:41 Nach oben    #4
Benutzer
 
Benutzerbild von niklasboelter
 
Registriert seit: 22.01.2006
Beiträge: 31
Standard

also bei mir gibt es eine klasse Main die alle anderen Klassen aufruft und den konstruktoren wo es benotigt ist ein Datenbank und/oder ein User Objekt uebergibt die dieses dann benutzen
__________________
PHP-Code:
$x[] =& $x;
$x == $x
niklasboelter ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 11:42 Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 285
Standard

Meine DB Klasse hat gewöhnliche Funktionen wie connect, query, fetch, etc.
Die Klasse für die Zugangsverwaltung macht das session handling per DB und muss dafür natürlich abfragen tätigen, darum erbt diese von DB Klasse um Dinge wie query oder fetch benutzen zu können.

Zitat:
also bei mir gibt es eine klasse Main die alle anderen Klassen aufruft und den konstruktoren wo es benotigt ist ein Datenbank und/oder ein User Objekt uebergibt die dieses dann benutzen
Klingt ein bisschen nach Java aber das ist ne gute Sache, dein Vorgehen. Ich werd das so probieren.

Geändert von ex³ (05.02.2006 um 11:45 Uhr)
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 12:11 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von ex³
Klingt ein bisschen nach Java
Es gibt keine Klasse "Main" ... nur eine main-Methode.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 12:51 Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 285
Standard

Jepp, genau das hab ich gemeint.
Kann mir grad jemand mal ein kleines beispiel nach niklasboelter zusammenstellen wie das mit einer Main Klasse ablaufen könnte?
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2006, 17:06 Nach oben    #8
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 539
Standard

main is keine klasse...
aber das prinzip ist ungefähr so:
PHP-Code:
/*
eine einfache Klasse die Queries nutzt...
*/
class PageConfig
{
protected 
$db  null;
function 
__construct(DbKlasse $db)
{
 
$this->db $db;
}
function 
getProperty($key)
{
 return 
$this->db->query('SELECT value FROM config WHERE key='.$key);
}
}
//der inhalt der "main"-Methode
$db = new DbKlasse($host$user$pw);
$config = new PageConfig($db);
// etc. 
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem beim Funktionsaufruf innerhalb einer Klasse cracki PHP-Programmierung 7 10.03.2007 17:25
Problem mit Vererbung (PHP) kari01 PHP-Programmierung 21 13.09.2006 19:56
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02
Problem mit OOP und Vererbung Jay PHP-Programmierung 9 09.01.2006 15:36
DB und PDF Klasse kombinieren ex³ PHP-Programmierung 2 27.12.2005 21:57


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45