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
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

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