hotti: Klassenübergreifende URL Parameter

Moin!

Nüschd Neues? Von Wegen ;)

Schnee von gestern aber heute nicht minder bedeutungslos: Eine Parameter Kontrollstruktur (PKS) übernimmt die Kontrolle über Schlüsselparameter, welche einem URL zugeordnet sind.

Ab heute: Die Parameter-Verarbeitung übernimmt eine Universal-Klasse. Über URL Parameter werden Aufgaben an eine Universalklasse delegiert. Damit die Anzahl der Methoden in der Universalklasse überschaubar bleibt, werden alle Methoden der Universalklasse in das FS ausgelagert und nur zur Laufzeit kompiliert (Perl Feature).

Dieses Thema diskutierten wir schon hier. Heute hab ich mal Zeit gefunden, das allgemein verständlicher aufzuschreiben. Es ist eine andere, in manchen Fällen vielleicht sehr zweckmäßige Art der Code-Verteilung.

Schönen Sonntag,
Horst Pfiffig

  1. Heute hab ich mal Zeit gefunden, das allgemein verständlicher aufzuschreiben.

    Tut mir leid, ich finde den Artikel komplett unverständlich. Ich habe auch nach dreimaligem Lesen keine Ahnung wovon du sprichst. Es scheint irgendwas mit Routing zu tun zu haben und irgendwas mit MVC. Ein paar Beispiele würden helfen.

    1. Heute hab ich mal Zeit gefunden, das allgemein verständlicher aufzuschreiben.

      Tut mir leid, ich finde den Artikel komplett unverständlich. Ich habe auch nach dreimaligem Lesen keine Ahnung wovon du sprichst. Es scheint irgendwas mit Routing zu tun zu haben und irgendwas mit MVC. Ein paar Beispiele würden helfen.

      Tja, das liegt daran, dass für die Meisten hier schon der Begriff einer

      Parameter Kontroll Struktur

      ein Fremdwort ist.

      Does not Matter, das wurde auch in der Alten Schule nicht gelehrt. Eines sollte jedoch klar sein: Eine Parameter Kontroll Struktur hat auch in der heutigen Welt der MVC Patterns nichts an Bedeutung verloren, ganz im Gegenteil.

      Schönen Sonntag,
      Horst Fröhlich

      PS: Ein mögliches Plug In Modell

      1. Tja, das liegt daran, dass für die Meisten hier schon der Begriff einer

        Parameter Kontroll Struktur

        ein Fremdwort ist.

        Weil du es erfunden hast. Es würde ungemein helfen, wenn wir uns auf ein gebräuchliches Vokabular einigen könnten.

        Does not Matter, das wurde auch in der Alten Schule nicht gelehrt.

        Ich glaube nicht, dass ich zur alten Schule gehöre. Ich habe 2009 mein ABI gemacht und studiere zur Zeit Informatik.

        Eines sollte jedoch klar sein: Eine Parameter Kontroll Struktur hat auch in der heutigen Welt der MVC Patterns nichts an Bedeutung verloren, ganz im Gegenteil.

        Ich kann mich an dieser Stelle nur auf dedlfix berufen. Du schreibst Lösungen zu Problemen, die du nicht erklärst. Was mich zu der Annahme verleitet, dass du das Problem selber nicht begriffen hast.

        Schönen Sonntag

        Danke, den wünsche ich dir ebenfalls.

      2. Tach!

        Tja, das liegt daran, dass für die Meisten hier schon der Begriff einer
          Parameter Kontroll Struktur
        ein Fremdwort ist.

        Ja, und ein ziemlich nichtssagendes. Üblicherweise verwendet man einen Router, der den Weg bereitet vom Front-Controller zum Action-Controller. Und dieser Router ist dann üblicherweise so erweiterbar, dass man im Prinzip auch andere Kriterien als nur HTTP-Parameter heranziehen kann.

        dedlfix.

      3. Hallo,

        Tja, das liegt daran, dass für die Meisten hier schon der Begriff einer

        Parameter Kontroll Struktur

        ein Fremdwort ist.

        dafür ist aber vielen hier der Begriff Deppen Leer Zeichen sehr gut bekannt.

        Ciao,
         Martin

        --
        Lebensmotto der Egoisten:
        Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      4. Hi,

        Parameter Kontroll Struktur

        Ich zitiere:
        "Da, wie ich weiter oben feststellte, die REQUEST_METHOD in der Parameter-Kontrollstruktur bedeutungslos ist, werde ich später, wenn ich mal in PHP programmiere, sowas machen:

        $PARAM = array_merge($_GET, $_POST);"

        Aha. Und warum genau machst du das? Warum nutzt du dann nicht gleich $_REQUEST? Ohnehin, ich persönlich möchte schon gerne wissen, ob meine Daten per POST oder GET übertragen worden sind...

        Ich glaube, du schreibst hier ziemlichen Unsinn und doktorst dir so deine eigene Welt zusammen. Und hast spitzbübischen Spaß damit, den Leute diesen Nonsens als das Novum zu verkaufen :)
        Oder denkst du im Ernst, diese Ergüsse sind irgendwie revolutionär? Nein, das denkst du nicht.

        Schönen Restsonntag
        Loner

        1. Oder denkst du im Ernst, diese Ergüsse sind irgendwie revolutionär? Nein, das denkst du nicht.

          Doch, dass glaubt er wirklich. Und das ist das eigetlich Traurige der Geschichte.

          1. Oder denkst du im Ernst, diese Ergüsse sind irgendwie revolutionär? Nein, das denkst du nicht.

            Doch, dass glaubt er wirklich. Und das ist das eigetlich Traurige der Geschichte.

            Kein Grund zur Traurigkeit: Seit heute morgen habe ich eine weitere Möglichkeit, Plugins zu erstellen, bisher:

            Neues Plugin => Neue Klasse

            Nunmehr: Neues Plugin => keine neue Klasse sondern nur eine neue Methode

            Eine Möglichkeit mehr, Anwendungen in sehr kurzer Zeit entwickeln zu können (z.B. habe ich heute für meinen neuen Ajax-Logger ca. eine Stunde gebraucht, Konfiguration anpassen, neues Plugin (nur die Method für den Logger), neue Klasse für die Datenabstraktion, neue Klasse für das Admin-Backend, Template für das Admin-Backend, zwei weitere Tamplates anpassen;  lokal testen, ab in Produktion und nebenbei habe ich Ferngeschaut).

            Gerne teile ich meine Freude darüber mit Euch ;)

            Hotti

            1. Nunmehr: Neues Plugin => keine neue Klasse sondern nur eine neue Methode

              Das findest du gut?
              Wenn du verschiedene Plugins innerhalb einer Klasse verwaltest, wird das lediglich ein Sauhaufen aber ist mit Sicherheit keine positive Neuerung .....

        2. Hi,

          Parameter Kontroll Struktur

          Ich zitiere:
          "Da, wie ich weiter oben feststellte, die REQUEST_METHOD in der Parameter-Kontrollstruktur bedeutungslos ist, werde ich später, wenn ich mal in PHP programmiere, sowas machen:

          $PARAM = array_merge($_GET, $_POST);"

          Aha. Und warum genau machst du das? Warum nutzt du dann nicht gleich $_REQUEST?

          Weil in keiner meiner Model Classes das Array $_COOKIE gebraucht wird, was in $_REQUEST steckt.

          Und Du hast nicht richtig gelesen: Die REQUEST_METHOD _kann_ in einer Model Class eine Rolle spielen, muss aber nicht. Eine Parameter-Kontroll-Struktur ist, um das mal mit den heutigen Begriffen auszudrücken, eine von vielen Möglichkeiten des URL-Routings. Das ist alles nüscht Neues. Auf die Idee, $_GET und $_POST zu mergen, sind übrigens auch schon Andere gekommen, ich vermute mal, das waren diejenigen, die einen Tag gebraucht haben, um ihren Code umzuschreiben, weil der Auftraggeber anstelle GET, einen POST haben wollte.

          Aber vielleicht gibts ja doch was Neues: Die Vollständige Trennung zwischen ACLs (Access-Control) und Code in den Model Classes. Wie das funktioniert, erkläre ich mal später, aber heute hat keiner danach gefragt ;)

          Viele Grüße, schönen Sonntag!

          1. Hi,

            Aha. Und warum genau machst du das? Warum nutzt du dann nicht gleich $_REQUEST?

            Weil in keiner meiner Model Classes das Array $_COOKIE gebraucht wird, was in $_REQUEST steckt.

            RT FM

            Eine Parameter-Kontroll-Struktur ist, um das mal mit den heutigen Begriffen auszudrücken, eine von vielen Möglichkeiten des URL-Routings.

            echo generiere_worthuelsen($nonsense_factor = 1.5);

            Auf die Idee, $_GET und $_POST zu mergen, sind übrigens auch schon Andere gekommen, ich vermute mal, das waren diejenigen, die einen Tag gebraucht haben, um ihren Code umzuschreiben, weil der Auftraggeber anstelle GET, einen POST haben wollte.

            Oder die auch zu bloed waren, um PHP ihren Anforderungen entsprechend zu konfigurieren.

            Aber vielleicht gibts ja doch was Neues: Die Vollständige Trennung zwischen ACLs (Access-Control) und Code in den Model Classes. Wie das funktioniert, erkläre ich mal später, aber heute hat keiner danach gefragt ;)

            Seit wann interessiert dich beim Verfassen deiner "Erklaerungen", ob jemand gefragt hat?
            Bzw., hat schon mal irgendwann auch nur ein Einziger ...?

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          2. Auf die Idee, $_GET und $_POST zu mergen, sind übrigens auch schon Andere gekommen,

            Hotty? Was ist los mit Dir?

            Ob und in  welcher Reihenfolge $_GET, $_POST, $_COOKIE, $_SESSION zu $_REQUEST gefügt werden steht in der PHP.ini:

            ; This directive determines which super global arrays are registered when PHP
            ; starts up. G,P,C,E & S are abbreviations for the following respective super
            ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
            ; paid for the registration of these arrays and because ENV is not as commonly
            ; used as the others, ENV is not recommended on productions servers. You
            ; can still get access to the environment variables through getenv() should you
            ; need to.
            ; Default Value: "EGPCS"
            ; Development Value: "GPCS"
            ; Production Value: "GPCS";
            ; http://php.net/variables-order
            variables_order = "GPCS"

            ich vermute mal, das waren diejenigen, die einen Tag gebraucht haben, um ihren Code umzuschreiben, weil der Auftraggeber anstelle GET, einen POST haben wollte.

            Suchen und Ersetzen. Minutensache.

            Jörg Reinholz

      5. Tja, das liegt daran, dass für die Meisten hier schon der Begriff einer

        Parameter Kontroll Struktur

        ein Fremdwort ist.

        Aufklärung 1

        Aufklärung 2

  2. Tach!

    Die Parameter-Verarbeitung übernimmt eine Universal-Klasse. Über URL Parameter werden Aufgaben an eine Universalklasse delegiert. Damit die Anzahl der Methoden in der Universalklasse überschaubar bleibt, werden alle Methoden der Universalklasse in das FS ausgelagert und nur zur Laufzeit kompiliert (Perl Feature). [...] Es ist eine andere, in manchen Fällen vielleicht sehr zweckmäßige Art der Code-Verteilung.

    Bei "zweckmäßig" muss man erstmal die Frage nach dem Zweck stellen. Dieser scheint mir in dem Fall zu sein, die Übersichtlichkeit wiederzuerlangen, weil sie durch ein Monstergebilde, beschönigend Universalklasse genannt, verlorengegangen ist. Statt sich solch ein Riesengebilde zu bauen, das man an einzelnen Funktionsgrenzen aufteilt, hat es sich bewährt, die Einheiten nach funktionellen Gründen zusammenzufassen. Das heißt, man überlegt sich ein ordentliches Klassendesign. In einem solchen haben die Klasen _eine_ genau definierte Aufgabe. Damit ergibt sich die Übersichtlichkeit von selbst.

    Ansonsten ist es mal wieder so, als ob du von Arbeiten auf dem Planeten X berichtest. Keiner hat die Möglichkeit dorthin zu reisen, um sich mit eigenen Augen ein Bild zu machen, was du da konkret tust. Im Gegensatz zu den Arbeiten der NASA auf dem Mars zeigst du auch keine Fotos, sondern spricht nur darüber unter Verwendung von Begriffen, die du dir selbst ausgedacht hast. Das einzige was bei deinen Erzählungen einem Außenstehenden bleibt, sind die Vergleiche zu dem was anderswo offengelegt ist und bei dem erfahrene Programmierer das eingebracht haben, was sich bewährt hat. Erwarte also auch hierzu keine über oberflächliche Dinge hinausgehenden Diskussionen zu deinem Tun.

    dedlfix.

  3. Hi,

    Nüschd Neues? Von Wegen ;)

    Vom Firmenrechner aus ergibt sich:

    This site has been blocked by the network administrator.  
      
    URL: http://rolfrost.de/proglog.html?d=20130317  
      
    Block reason: Forbidden Category "Pornography"  
    

    ;-)

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hallo,

      This site has been blocked by the network administrator.  
        
      URL: http://rolfrost.de/proglog.html?d=20130317  
        
      Block reason: Forbidden Category "Pornography"  
      

      das ist gar nicht so ungewöhnlich; anscheinend gibt es zahlreiche Content Filter, die stur auf Stichworte anspringen.

      Ein Ex-Kollege hatte vor einiger Zeit mal viel Ärger mit e-Mails von und an UL, die nie ankamen - und wie es in der Firma praktiziert wurde, bekam auch niemand einen Hinweis darauf, dass Mails ausgefiltert wurden. Als er sich irgendwann mal beim zuständigen Admin beschwert und nachdrücklich nachgefragt hat, und der sich endlich bequemte, mal einen Blick ins Protokoll zu werfen, bekam er schließlich die Auskunft:

      Ja, diese Mails sind blockiert worden.
      Stichwort: CP (Child Porn)

      Was für ein Pech, dass die Typenbezeichnung des Geräts, für das er eine UL-Zulassung beantragt hat, ausgerechnet mit "CP" anfing.

      Schönen Sonntag noch,
       Martin

      --
      Die Natur ist gnädig: Wer viel verspricht, dem schenkt sie zum Ausgleich ein schlechtes Gedächtnis.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    2. Hi,

      Nüschd Neues? Von Wegen ;)

      Vom Firmenrechner aus ergibt sich:

      This site has been blocked by the network administrator.  
        
      URL: http://rolfrost.de/proglog.html?d=20130317  
        
      Block reason: Forbidden Category "Pornography"  
      

      Extra für Dich: Moped

      Hotti

  4. Moin!

    Lol.

    Dieses Thema diskutierten wir schon hier. Heute hab ich mal Zeit gefunden, das allgemein verständlicher aufzuschreiben. Es ist eine andere, in manchen Fällen vielleicht sehr zweckmäßige Art der Code-Verteilung.

    Ich code seit fast 10 jahren mit MVC frameworks, rails/sinatra/ramaze und ich hab nicht die geringste ahnung wtf ich gerade gelesen habe.

    Schönen Sonntag,
    Horst Pfiffig

    Mfg entropie

    --
    Whenever people agree with me I always feel I must be wrong.
      -- Oscar Wilde