Rolf B: Aufteilung der Funktion, MVC

Beitrag lesen

problematische Seite

Hallo localhorst,

wir wissen nicht, ob Vapita MVC verwendet bzw. schonmal was davon gehört hat. Aber wenn wir ein MVC-Design voraussetzen, dann würde sich das so aufteilen:

  • Übernehmen der Formdaten, ggf. auch grundsätzliche Validierung (Array/String, steht was drin) ist Teil der View-Schicht. Die View-Schicht besteht aus zwei Teilen: Zum einen der Webbrowser, und zum anderen der serverseitige Code zum Senden an den und Empfangen vom Browser. Da jeder Request jungfräulich am Server beginnt, ist es Sache des verwendeten Controllers, die Übernahme der Eingabedaten zu orchestrieren. Das ist meistens so gebaut, dass der Controller die Übertragung der Daten ins Modell direkt durchführt, aber eigentlich ist es Teil der View-Schicht. Wenn ich also einen LoginView auf dem Browser habe und der sich zurückmeldet, dann müsste der LoginController eigentlich User-Model und LoginView erzeugen, die beiden verkabeln und es dann dem View überlassen, $_GET und $_POST Daten auszuwerten (MVC Prinzip: Der View kennt das Model, aber das Model nicht den View. Der Controller kennt View und Model, aber beide kennen den Controller nicht).

  • Speichern der Userdaten (Name, Passworthash, Rechte, bla bla) ist Teil des Model. Ihre Persistierung gehört in den DB-Layer, der von MVC nicht explizit erwähnt wird, aber Teil des Models ist. Der Modellschicht den passenden DB-Layer unterzuschieben sollte konfigurativ erfolgen, oder im Web zentral von der allgemeinen Requeststeuerung erledigt werden.

  • Eine Passwortklasse ist eher auf der Controller-Ebene anzusiedeln, es ist eine Diensteklasse für die Aktionen Login, Register und ChangePassword des User-Controllers

Diskutieren kann man, ob eine Passwort-Klasse den Job haben sollte, einen User anzulegen (db_insert_password). Das gehört meiner Vorstellung nach anders sortiert, ich wollte nur die Diskussion nicht zu weit aufblähen und neue Themenfelder eröffnen. Ein User-Objekt hat einen Namen, einen Passworthash, Rechte, etc. Und ein Login-Controller verwendet die Passwort-Klasse, um Passwörter zu verschlüsseln und zu überprüfen. Den Hash bekommt er vom User geliefert. Beim Anlegen eines neuen Users oder beim Passwortwechsel kann der Hash natürlich auch geändert werden.

Rolf

--
sumpsi - posui - obstruxi
0 97

Reihenfolge beim Überprüfen neuer Passwörter

vapita
  • datenbank
  • php
  1. 0
    Rolf B
    1. 2
      TS
      • datenbank
      • php
      • sicherheit
      1. 0
        vapita
        1. 1
          TS
          1. 0
            vapita
        2. 0
          Rolf B
          1. 0
            vapita
            1. 0
              Rolf B
            2. 2
              TS
              • php
              • programmiertechnik
              1. 0
                vapita
                1. 1
                  Rolf B
                  1. 2
                    Der Martin
                  2. 0
                    vapita
                  3. 0
                    vapita
                    1. 1
                      Rolf B
      2. 0
        dedlfix
        1. 1
          TS
          1. 0
            localhorst
            • humor
            1. 2
              kai345
              1. 0
                TS
                1. 2
                  kai345
                  1. 0
                    Robert B.
              2. 0
                Robert B.
                1. 0
                  TS
                  1. 0
                    MudGuard
                    1. 0
                      Der Martin
                      1. 0
                        Robert B.
          2. 0
            dedlfix
            1. 0
              localhorst
              • fachbegriff
          3. 2
            Rolf B
            1. 0
              dedlfix
              1. 0
                Rolf B
                1. 0
                  1unitedpower
        2. 1
          localhorst
          • php
          • sicherheit
          • test
          1. -2
            Tabellenkalk
            1. 1
              Der Martin
          2. 0
            dedlfix
          3. 0
            Rolf B
          4. 1

            == oder === ?

            TS
            1. 1
              localhorst
              1. 0
                TS
            2. 0
              Rolf B
              1. 0
                TS
                • menschelei
              2. 1
                dedlfix
                1. 0
                  TS
            3. 0
              dedlfix
              1. 1
                TS
      3. -3
        klawischnigg
        1. 1
          localhorst
          1. -2
            klawischnigg
    2. 0
      vapita
      1. 3
        TS
        • datenbank
        • php
        • verschlüsselung
  2. 0
    Robert B.
    • sicherheit
    1. 0
      Rolf B
    2. 0
      vapita
      1. 2
        Rolf B
        1. 0
          vapita
          1. 0
            Robert B.
            • programmiertechnik
      2. 0
        Robert B.
        1. 0
          Tabellenkalk
          1. 2
            Rolf B
            1. 0
              Tabellenkalk
              1. 0
                Rolf B
  3. 1
    tk
  4. 0

    Aufteilung der Funktion, MVC

    localhorst
    • datenbank
    • php
    • programmplanung
    1. 0
      Rolf B
      1. 2
        vapita
        1. 0
          vapita
          1. 0
            Rolf B
            1. 0
              vapita
  5. -1
    Raketenlagermeister
    • javascript
    • php
    1. 0
      Peter Pan (no reg.)
      1. 0
        Raketenlagermeister
        1. 1
          Peter Pan (no reg.)
          1. 0
            Raketenlagermeister
            1. 0
              Rolf B
              1. 0
                Auge
                1. 0
                  Rolf B
                  1. 0

                    Highlight.js für PHP

                    vapita
                    1. 1
                      Auge
                      1. 0
                        vapita
                        • javascript
                        • php
                        • richtigstellung
                2. 0
                  Raktenlagermeister
                  1. 0
                    Matthias Apsel
                  2. 0
                    kai345
              2. 0
                Henry
                • editor
                • javascript
                • php
      2. 0

        Apropos Peter Pan

        Raketenlagermeister
        • sonstiges
        1. 0

          Bevor gefragt wird

          Raketenlagermeister
          • urheberrecht
        2. 0
          Matthias Apsel
          1. 0
            Raketenlagermeister
            1. 0
              Matthias Apsel
              1. 0
                Raketenlagermeister
                1. 0

                  Doch kein Pflaumenschnaps

                  Raktenlagermeister
                  1. 0
                    Matthias Apsel
                    1. 0
                      Raktenlagermeister
                      1. 0
                        Matthias Apsel
    2. 0

      Frage zu Mozillas „sicheres Passwort“ und Update

      Raketenlagermeister