Rolf B: Reihenfolge beim Überprüfen neuer Passwörter

Beitrag lesen

Hallo vapita,

IF-Schleifen

Brrrrrr

Wenn Methoden zu komplex werden, teilt man sie auf. Ab PHP 7 ist ein Funktions-/Methodenaufruf nicht mehr so teuer. Die Idee ist, dass eine Methode sich um genau eine Aufgabe kümmert. Wird sie länger als 50 Zeilen, läuft zumeist was falsch.

Wenn Du eine Methode hast, die drölf Prüfungen macht und nach jeder Prüfung mit BREAK aussteigen kann, dann solltest Du jede dieser Prüfungen in eine eigene, private Methode auslagern, und sie einfach nacheinander aufrufen.

public function do_a_lot() {
   $success = $this->do_thing_1()
           && $this->do_thing_2()
           ...
           && $this->do_thing_13()
   if (!$success) {
      // Log Error - falls noch nötig
   }  
}

Die Einzelmethoden müssen nur mit return false; aussteigen, um den Ablauf abzubrechen. PHP verwendet wie einige andere Sprachen auch die sogenannte Kurzschluss-Logik: Wenn bei A && B oder A || B nach der Auswertung von A schon feststeht, wie das Ergebnis ist, wird B nicht mehr angefasst. Bei && ist es klar, wenn A zu FALSE wird, und bei || ist es klar, wenn A zu TRUE wird.

In $this->doThis() && $this->doThat() wird doThat nur aufgerufen, wenn doThis TRUE zurückgibt (oder etwas, das der Type Juggler zu TRUE macht).

Es kommt auch vor, dass man in den einzelnen Schritten Teilergebnisse bestimmt, die in den folgenden Schritten gebraucht werden. Sie dann als Parameter zur übergeben, ist unhandlich. Sowas deutet aber darauf hin, dass diese Methode lieber ein eigenes Objekt sein möchte, ein Worker. Statt die Monstermethode aufzurufen, instanziierst Du den Worker, rufst seine offizielle Methode auf (z.B. "Run" oder "Validate" oder was grad passt) und der macht dann intern rum. Die privaten Methoden, die drinstecken, verwenden private Properties, um sich Daten zuzuspielen. Das ist absolut okay.

Der Vorteil ist auch, dass man einen solchen Worker wiederverwenden und isoliert testen kann.

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