PDO global nutzen oder in jedem PHP-Script instanzieren?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Originally posted by Master0Blicker View Post
    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.

    Comment


    • #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?

      Comment


      • #4
        Originally posted by Master0Blicker View Post
        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(); 

        Comment


        • #5
          @h3ll

          Alles klar.
          Konstruktor ist eine gute Idee.

          Vielen Dank.

          Comment

          Working...
          X