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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:48 Uhr.