Tom: Komplettes Projekt in OOP v2

Beitrag lesen

Hello,

Bitte private. Das Singleton-Pattern lässt keine Vererbung zu, also braucht es kein protected.

Das hab ich ja schon so vorgeschlagen. Die Methode connect() sollte private sein. Alle Methoden, die einen Connect voraussetzen, rufen connect() auf. connect() baut die Verbindung auf, wenn sie noch nicht steht und ansonsten macht sie nichts. Die Zugangsdaten kann sie sich entweder von Klassenvariablen holen, die ganz am Script-Anfang, also noch vor jeglicher Verwendung von db_singleton(), gesetzt wurden, oder sie holt sie sich aus einer definierten (z.B. ini-File).

Also soll ich den Connect nicht automatisch mit dem Aufruf des Singleton machen? Weil ich mein, wenn ich das Singleton aufbaue, dann will ich auch die Verbindung haben. Logisch.

MMn solltest Du das ruhig tun.

Du benötigst also eine Methode init(), die den Anfangszustand herstellt und z.B. die Zugangsdaten und weitere Voreinstellungen aus einem _extra_ ini-File beschafft. Dafür hat PHP die Funktion parse_ini_file() http://www.php.net/manual/de/function.parse-ini-file.php

Dann benötigst Du die Methode connect(), die mit den beschafften Daten die Verbindung aufbaut.

Beide kannst Du im Konstruktor aufrufen, natürlich connect() nur, wenn init() geklappt hat.

Also soll die Zuweisung in der ini stattfinden.
Sprich es steht dort z.b. drin:

db->_db_host="localhost";

? Oder wie?

siehe Doku zu parse_ini_file

Ich habe übrigens noch nie ausprobiert, ob man in einer Klasse ein Array auch als private anlegen kann, das auszuprobieren wäre doch eine gute Übung für Dich  :-))

Die Zugangsdatenvariablen sind ja static also müsste das doch so gehen.

Ich sehe nicht, warum die static sein müssen. MMn reicht da private aus. Es gibt ja sowieso nur eine Instanz von der Klasse. Und wenn Du Dir das später mal anders überlegen solltest, bräuchtest Du dann  nur den Konstruktor wieder public machen, oder z.B. im Singleton Arbeitsbereiche einrichten, wenn Du darüber die Anzahl nur beschränken willst. Static ist also für diese Daten definitv falsch!

Die Werte kann ich ja aufgrund des "static" übergeben bevor das Singleton geholt wird.

Wie willst Du das machen? Willst Du sie hard codieren? Dann stehen sie sichtbar in der Klasse.

Liebe Grüße aus dem Cyberspace

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de
0 77

Komplettes Projekt in OOP v2

Chris
  • php
  1. 0
    Patrick Figel
  2. 0
    Sympathisant
    1. 0
      Chris
      1. 0
        Sympathisant
        1. 0
          Sven Rautenberg
          1. 0
            Sympathisant
      2. 1
        Sven Rautenberg
        1. 0
          dedlfix
      3. 0
        CHris
  3. 0
    Tom
    1. 0
      Chris
      1. 0
        Tom
      2. 0
        Sympathisant
        1. 0
          Tom
          1. 0
            Sven Rautenberg
            1. 0
              Tom
              1. 0
                Sympathisant
                1. 0
                  Tom
                  1. 0
                    Tom
                    1. 0
                      Sympathisant
                      1. 0
                        Tom
                        1. 0
                          dedlfix
                    2. 0
                      dedlfix
                  2. 0
                    Sympathisant
                    1. 0
                      Tom
                      1. 0
                        Sympathisant
                2. 0
                  Sven Rautenberg
                  1. 0
                    Tom
                    1. 0
                      dedlfix
                3. 0
                  dedlfix
                  1. 0
                    Sympathisant
                    1. 0
                      dedlfix
                      1. 0
                        Sympathisant
              2. 0
                dedlfix
                1. 0
                  Tom
          2. 0
            Sympathisant
        2. 0
          dedlfix
    2. 0
      dedlfix
      1. 0
        Tom
        1. 0
          dedlfix
          1. 0
            Tom
            1. 0
              dedlfix
              1. 0
                Tom
  4. 0

    PDF-Doku für OOP mit PHP5

    Tom
    1. 0
      dedlfix
      1. 0
        Tom
        1. 0
          dedlfix
  5. 0

    Und noch ein eBook für PHP OOP

    Tom
  6. 4
    dedlfix
    1. 0
      Tom
      1. 0
        dedlfix
  7. 0
    Chris
    1. 0
      dedlfix
      1. 0
        Chris
        1. 0
          Tom
          1. 0
            Chris
            1. 0
              Sympathisant
              1. 0
                Tom
        2. 0
          dedlfix
      2. 0
        Chris
        1. 0
          dedlfix
          1. 0
            Chris
            1. 0
              dedlfix
              1. 0
                Chris
                1. 1
                  dedlfix
                  1. 0
                    Chris
                    1. 0
                      dedlfix
                      1. 0
                        Chris
                        1. 0
                          dedlfix
                          1. 0
                            Chris
                            1. 0
                              Tom
                              1. 0
                                dedlfix
                            2. 0
                              dedlfix
                              1. 0
                                Chris
                                1. 0
                                  dedlfix
                                  1. 0
                                    Chris