PDO global nutzen oder in jedem PHP-Script instanzieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PDO global nutzen oder in jedem PHP-Script instanzieren?

    Hallo Leute,

    ich hätte da mal wieder eine Frage.

    Ich verwende mehrere Klassen in meinem PHP-Projekt wobei manche auf die DB zugreifen sollen.
    Im Root-Dokument habe ich ein PDO-Objekt erstellt/instanziert welche ich dort auch verwende.
    Jetzt habe ich Klassen die per include in das Projekt eingebunden werden und daraus Objekte instanziert werden (Klassen sind in seperaten PHP-Dateien).

    Wie macht man das nun am saubersten wenn aus den Klassen auf die DB zugegriffen werden soll?
    Verwende ich 'GLOBALS["pdo"] oder erstelle ich pro Klasse ein eigenes PDO-Objekt und verwende es dann?

  • #2
    Zitat von Master0Blicker Beitrag anzeigen
    Wie macht man das nun am saubersten wenn aus den Klassen auf die DB zugegriffen werden soll?
    Verwende ich 'GLOBALS["pdo"] oder erstelle ich pro Klasse ein eigenes PDO-Objekt und verwende es dann?
    Weder noch. Du erstellst ein einziges PDO-Objekt und übergibst es an diejenigen Klassen, die es benötigen.

    Kommentar


    • #3
      @h3ll

      Mache ich das indem ich eine public function erstelle welche als Parameter das PDO-Objekt enthält um es dann einem Member-Objekt zuzuweisen?

      Dann 'arbeitet' man mit dem Member-pdo-Objekt weiter?

      Dann muss man daran denken bei jedem Objekt dies zu setzen.

      Habe ich das so richtig verstanden?

      Kommentar


      • #4
        Zitat von Master0Blicker Beitrag anzeigen
        Mache ich das indem ich eine public function erstelle welche als Parameter das PDO-Objekt enthält um es dann einem Member-Objekt zuzuweisen?

        Dann 'arbeitet' man mit dem Member-pdo-Objekt weiter?

        Dann muss man daran denken bei jedem Objekt dies zu setzen.
        Deswegen macht man das im Konstruktor, damit man es nicht vergessen kann:

        PHP-Code:
        class MyClass {
            private 
        $db;

            public function 
        __construct(PDO $db) {
                
        $this->db $db;
            }

            public function 
        doSomething() {
                
        $this->db->query('SELECT 1');
            }

        PHP-Code:
        $myObject = new MyClass($db);
        $myObject->doSomething(); 

        Kommentar


        • #5
          @h3ll

          Alles klar.
          Konstruktor ist eine gute Idee.

          Vielen Dank.

          Kommentar

          Lädt...
          X