php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.12.2006, 22:11  
Erfahrener Benutzer
 
Registriert seit: 15.06.2005
Beiträge: 206
phpbeginner
Standard ein neues Datenbank-Objekt in jeder Klasse?

Guten Abend

folgende Frage beschäftigt mich,
muss man bei jeder neuen Klasse ein neues Datenbank-Objekt im Konstruktor definieren oder reicht es wenn man es in einer separaten Datei macht?

Wenn man z.B. News, Artikel, Navigation Klasse hat.

PHP-Code:
     // konstruktor
     
function __construct()
     {
         
$this->db = new dbClass();
     } 
__________________
Ich lerne PHP und es macht mir Spass!
phpbeginner ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.12.2006, 22:13  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Versuche doch mal von innerhalb der Klasse auf das Objekt zuzugreifen, welches du in der separaten Datei erstellt hast. Das sollte deine Frage doch eigentlich beantworten, oder?
imported_Ben ist offline  
Alt 28.12.2006, 22:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
übergib dem Konstruktor oder der save() / load() Methode doch einfach das Datenbank-Objekt.

PHP-Code:
<?php
class X
{
  private 
$_oDB;

  function 
__construct($oDB)
  {
    
$this->_setDB($oDB);
  }
  private function 
_setDB($oDB)
  {
    if (
is_object($oDB) && strtolower(get_class($oDB)) == 'meinedatenbankklasse') {
      
$this->_oDB =& $oDB;
    }
  }
}
?>
Zergling-new ist offline  
Alt 03.01.2007, 10:34  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo,

sinnvollerweise designed man hier eine Basis-Klasse von der alle Action-Klassen erben. Diese zieht sich im Konstruktor deine DB-Komponente und initialisiert diese (idealerweise) singleton. Wenn du dann eine neue Klasse von der Basis ableitest, musst du darauf achten, dass du dort im Konstruktor auch

Code:
   function __construct(){
      parent::__construct();
   }
aufrufst.

@Zergling:

Code:
strtolower(get_class($oDB)) == 'meinedatenbankklasse'
Das muss doch, wenn du schon

Code:
  private function _setDB($oDB) 
  {
schreibst nicht mehr sein in PHP 5...


Grüße,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 03.01.2007, 12:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ist der Coding Standard des Zend Frameworks und ich finde ihn eigentlich ganz sinnvoll.
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Objekt im GET-Query wird nicht übertragen Ralpho PHP-Fortgeschrittene 10 05.05.2008 10:03
Objekt in Datenbank ablegen Timo Trallala PHP Tipps 2008 5 06.03.2008 05:29
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
klasse: Datenbank - Verwaltung dh1sbg PHP Tipps 2007 1 12.08.2007 20:32
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
MySQL - Klasse: Wie da mysql_close benutzen Igäl PHP Tipps 2006 5 01.10.2006 23:09
ein neues Object im Konstruktor der Klasse phpbeginner PHP Tipps 2006 7 14.05.2006 15:00
[Erledigt] PHP5 OOP Zugriff aus einem Objekt auf ein externes Objekt PHP Tipps 2006 5 28.01.2006 16:05
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
kann sich ein Objekt selbst serialisieren? ajo_silent PHP Tipps 2005-2 24 27.06.2005 09:13
Fehler in datenbank klasse Fraylman PHP Tipps 2005 6 18.05.2005 20:34
Datenbank Klasse PHP Tipps 2004-2 6 25.11.2004 20:07
objekt und collection PHP Tipps 2004-2 2 17.11.2004 08:46
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.