Ankündigung

Einklappen
Keine Ankündigung bisher.

Querys in Datei auslagern?

Einklappen

Neue Werbung 2019

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

  • Querys in Datei auslagern?

    Hallo,

    mich würde mal interessieren, was ihr davon haltet, wenn man man Querys in eine extra Datei auslagert?
    Macht den Quelltext doch ein Stück übersichtlicher, wenn hier und da mal eine lange Schlange fehlt.
    Gibt es da irgendwelchen extremen Geschwindigkeitseinbußen?

  • #2
    Ich würde eher eine Datenbanklasse verwendet.
    Was weiß ich, einen DataMapper oder ein ActiveRecord-Pattern. Die Querys nur in eine externe Datei auszulagern, halte ich persönlich für Dummfug.

    Kommentar


    • #3
      Der Code zum Wiedereinlesen der Query macht das Script auch nicht übersichtlicher.

      Wenn dir die Dateien zu groß werden, dann lagere lieber komplette logische Einheiten aus, die dann includiert werden.

      Kommentar


      • #4
        Hab ich schon mal in nem großen Projekt gemacht. Ist sehr übersichtlich. Das Problem sind dynamische Parameter, da muß man dann wieder mit sprintf und % arbieten oder dergleichen.

        Kommentar


        • #5
          Fantasiecode:

          $sql = getQueryFromFile($queryNummer, $suchenParameter, $ersetzenParameter);

          Meinst du sowas?

          Kommentar


          • #6
            Wer? Ich?

            Kommentar


            • #7
              Ja. Es interessiert mich, wie das ganze hinterher lesbarer sein soll.

              Wenn ich mir nen Script mal so Zeile für Zeile anschaue, dann machen doch die SQL-Teile den geringsten Teil des Codes aus. (Dialogprogrammierung).

              Kommentar


              • #8
                Ich benutze für die Datenbankabfragen gerne Chaining, das Auslagern will sich mir auch nicht so recht erschließen:
                PHP-Code:
                $query = new Query();
                $query->select('*')
                      ->
                from('table')
                      ->
                where('a = ? AND x = ?''b''y')
                      ->
                groupBy('col')
                      ->
                limit(10);
                $result $query->execute(); 

                Kommentar


                • #9
                  Hallo,

                  Auslagerung von Statements schafft Wiederverwendbarkeit derselben und ist beispielsweise im APF implementiert. Code dazu findest du unter Adventure PHP Framework (core): MySQLHandler Class Reference

                  Ich erreiche beispielsweise damit, dass die Pager-Komponente die selben Statements nutzen kann, wie die Datenschicht derselben Applikation. Ändere ich etwas an der Datenschicht, muss ich nur ein Statement anpassen.

                  Kommentar


                  • #10
                    Das stimmt natürlich.
                    Ich persönlich würde aber der Abstraktion wegen doch lieber auf etwas wie das Obige zurückgreifen. Dieses kann man dann immer noch in eine externe Klasse kapseln, sodass man z.B. per ClassName::saveUserPref(array(...)); o.ä. verschiedene Querys zu einem Task gruppieren kann. Oder nicht?

                    Kommentar


                    • #11
                      Oder nicht?
                      Das kommt auf die Zielsetzung an und auf welcher Ebene du abstrahieren möchtest. Den Ansatz, den ich beschrieben habe, verwendest du um in der Daten-Schicht einer Anwendung mehrfache Verwendung zu ermöglichen, deine Vorgehensweise Adressiert mehr das Thema Domänen-Objekte bzw. die ActiveRecord-Geschichte. Eine Symbiose aus beiden Welten kannst du auch erreichen, in dem die Verarbeitung der Objekte an eine generische Mapper-Schicht übertragen wird. Sowas in der Art habe ich im letzten Release in das APF integriert. Wenn du Interesse hast, schau mal hier: Adventure PHP Framework - Generischer OR Mapper

                      Kommentar

                      Lädt...
                      X