php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-11-2006, 20:24
Turbo
 Newbie
Links : Onlinestatus : Turbo ist offline
Registriert seit: Aug 2006
Beiträge: 41
Turbo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Singleton Muster für Datenbank Klasse - Nachteile?

Hallo,

ich möchte für meinen Shop das Singleton Muster für meine Datenbankverbindung nutzen, um die Verbindung in anderen Klassen verfügbar zu machen.
Meine erste Frage ist, ob es Nachteile bei der Nutzung für die DB Klasse gibt, oder sogar eine bessere Lösung?
Zweitens: Gehe ich richtig der Annahme das jeder Surfer trotzdem seine eigene Verbindung bekommt?
Drittens: Wie lange lebt das Objekt und wie zerstöre ich es gezielt. Ich denke für jeden Seitenaufbau muss das Objekt neu instanziert werden, richtig? Sollten man dann nach jedem Seitenaufbau das Objekt zerstören?

Ah ja, noch wichtig 1:
Ist es elegant z.B. in der Artikel Klasse viele Methoden zu haben, die eine Datenbank Verbindung benötigen, wie z.B. ob ein Artikel existiert, einen Artikel einfügen, Umbenennen, etc alles in Verbund mit Querys oder sollte man das Objekt komplett abholen, drauf arbeiten und später wieder serialisieren(so heißt es glaube ich).

Ah ja, noch wichtig 2:
Wo validiert ihr die $_GET und $_POST Variablen? Direkt am Anfang der Empfängerseite oder in den einzelnen Methoden? Wenn ich frage ob ein Artikel existiert erwartet die exists() Methode der Artikel Klasse einen Integer, aber prüft diesen nicht, sondern erwartet das er vorher bereits validiert wurde.

Danke

Geändert von Turbo (27-11-2006 um 20:30 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 27-11-2006, 20:28
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Singleton Muster für Datenbank Klasse - Nachteile?

Zitat:
Original geschrieben von Turbo
Meine erste Frage ist, ob es Nachteile bei der Nutzung für die DB Klasse gibt, oder sogar eine bessere Lösung?
Wüsst nicht

Zitat:
Zweitens: Gehe ich richtig der Annahme das jeder Surfer trotzdem seine eigene Verbindung bekommt?
Ja, die Art Verbindung bleibt gleich, nur die Schnittstelle zum Code ändert sich

Zitat:
Drittens: Wie lange lebt das Objekt und wie zerstöre ich es gezielt. Ich denke für jeden Seitenaufbau muss das Objekt neu instanziert werden, richtig? Sollten man dann nach jedem Seitenaufbau das Objekt zerstören?
Wenn du es als Singleton implementierst, wird es theo. bis zum Ende des Skriptes leben, außer du implementierst eine separate "SingletonKill"-Methode, welche das Objekt aus der statischen Variable radiert
Mit Zitat antworten
  #3 (permalink)  
Alt 28-11-2006, 08:43
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Singleton Muster für Datenbank Klasse - Nachteile?

Zitat:
Original geschrieben von Turbo
Meine erste Frage ist, ob es Nachteile bei der Nutzung für die DB Klasse gibt, oder sogar eine bessere Lösung?
Eher nicht.

Zitat:
Zweitens: Gehe ich richtig der Annahme das jeder Surfer trotzdem seine eigene Verbindung bekommt?
Ja, bei jedem request wird eine instanz deines skriptes ausgeführt,
dort wird dann ein ein frisches objekt erzeugt, dass innerhalb des
programablaufes einzigartig bleibt.

Zitat:
Drittens: Wie lange lebt das Objekt und wie zerstöre ich es gezielt. Ich denke für jeden Seitenaufbau muss das Objekt neu instanziert werden, richtig?
Wenn du es nicht vorher explizit für den gc frei gibst wird es wie alle
anderen objekte nach ablauf des programmes zerstört.

Zitat:
Sollten man dann nach jedem Seitenaufbau das Objekt zerstören?
Nein.


Zitat:
Ist es elegant z.B. in der Artikel Klasse viele Methoden zu haben, die eine Datenbank Verbindung benötigen, wie z.B. ob ein Artikel existiert, einen Artikel einfügen, Umbenennen, etc alles in Verbund mit Querys oder sollte man das Objekt komplett abholen, drauf arbeiten und später wieder serialisieren(so heißt es glaube ich).
Es ist nie elegant viele oder große methoden in einer klasse zu haben.
Das interface sollte so klein wie möglich und so groß wie nötig sein.
Bei vielen daten ist es definitiv performanter der db die arbeit zu überlassen.
Wenn du die daten erst holst und in einem/mehreren php-typen speicherst
umgehst du zugriffsoptimierungen die das rdbms bietet zb. indezies.

Zitat:
Wo validiert ihr die $_GET und $_POST Variablen? Direkt am Anfang der Empfängerseite oder in den einzelnen Methoden? Wenn ich frage ob ein Artikel existiert erwartet die exists() Methode der Artikel Klasse einen Integer, aber prüft diesen nicht, sondern erwartet das er vorher bereits validiert wurde.
Da scheiden sich die geister. Ich bin der meinung dass das model validieren
sollte was für das model von bedeutung ist. Nur das model weiss in welcher
form es daten braucht und wie diese verarbeitet werden. Würde eine
andere schicht darüber bescheit wissen müssen, hättest du etwas das man
bad coupling nennt.

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni


 

Aktuelle PHP Scripte

Simple Forum PHP ansehen Simple Forum PHP

If you need simple forum or discussion on your website, then you've come to the right place. Simple Forum PHP is a script that is very easy to install and administer.

28.08.2021 nevenov | Kategorie: PHP/ Forum PHP Software
Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:12 Uhr.