Managed Server
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Klassenerweiterungen

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Klassenerweiterungen
    am: 12. Februar 2023, 12:09:11
    Ich würde mich gerne mit dem Thema "Klassenerweiterungen" im Shop beschäftigen. Gibt es hier ein Modul, das man als gutes Beispiel dafür nehmen kann? Mir fehlt gerade der "Einstiegspunkt".

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42804.0
    rechtstexte für onlineshop

    RobinTheHood

    • Experte
    • Beiträge: 210
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #1 am: 12. Februar 2023, 12:44:01
    Hallo Q,

    ich habe vor einiger Zeit mal alle Modul-Klassenerweiterungen und deren Methoden, die sich erweitern lassen, als Muster-Dateien unter https://github.com/RobinTheHood/class-extensions zusammengetragen. Zudem findest du vielleicht einige Informationen dazu unter https://docs.module-loader.de

    Möglicherweise hilft dir das etwas weiter.

    Mit besten Grüßen und einen schönen Sonntag
    Robin

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Re: Klassenerweiterungen
    Antwort #2 am: 12. Februar 2023, 16:53:58
    Danke Robin. Gehe ich direkt mal durch....

    RobinTheHood

    • Experte
    • Beiträge: 210
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #3 am: 12. Februar 2023, 18:17:43
    Hallo Q,

    ich habe gesehen, dass du mehrere Pull Requests auf GitHub gemacht hast, um die Dokumentation zu verbessern. Hab' vielen Dank. Darüber freue ich mich.  🙂

    Wünsche dir bei deinem Vorhaben viel Erfolg, dich in die Klassenerweiterungen einzuarbeiten.

    Mit besten Grüßen und einen schönen Abend
    Robin

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #4 am: 13. Februar 2023, 22:27:09
    @Q
    Ich weiß nicht ob dir eine "Anleitung" hilft, die auf Robin's eigenen Klassen beruht,
    oder deute ich so etwas verkehrt ?
    Code: PHP  [Auswählen]
    use RobinTheHood\ModifiedStdModule\Classes\StdModule;

    Kurzanleitung:
    Für die Klassen in denen es Hooks gibt findest du im selben Ordner wie die Klasse immer eine weitere Klasse namens   klasseModules.class.php.
    Beispiel: /includes/classes/main.php  und /includes/classes/mainModules.class.php
    In dieser sind dann Methoden definiert die du in der zu erweiternden Klasse an diesen Stellen findest
    Code: PHP  [Auswählen]
    $this->klasseModules->function

    "klasse" und "function" wären mit den entsprechenden Namen zu ersetzen, ich benutze die Begriffe lediglich als Platzhalter, damit du das System verstehst.
    Beispiel aus der Beispiel-Klasse:
    Code: PHP  [Auswählen]
    $this->mainModules->getContentData(

    Die Erweiterung muß dann in (/admin)/includes/modules/klasse/  liegen.

    Als Vorbild einer Klassenerweiterung könntest du
    /includes/modules/order/productTagsOnCheckout.php
    nehmen, welche, am Pfad zu erkennen, eine Erweiterung der Klasse order  ist.
    Oder auch, für den Admin-Bereich
    /admin/includes/modules/categories/catCopyProductName.php.

    Gruß,
    noRiddle

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #5 am: 13. Februar 2023, 22:43:40
    Schön, dass das noch jemand hinterfragt. Wollte erst eine ähnliche Antwort schreiben, aber da von Q keine entsprechende Rückmeldung kam, dass er damit nichts anfangen kann, hab ich es mir verkniffen. Ich gehe mal davon aus, dass die Dokumentation nur sinnvoll für die Entwicklung von MMLC-Modulen sein dürfte.

    RobinTheHood

    • Experte
    • Beiträge: 210
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #6 am: 13. Februar 2023, 23:32:32
    Guten Abend,

    vielen Dank für den Hinweis.

    Die von mir verlinkte Dokumentation in meinem ersten Beitrag zu diesem Thread bietet einen Einstieg in die Modulentwicklung für das modified System.

    Der MMLC oder sonstige Codebibliotheken von Drittanbieter werden nicht benötigt, um der Dokumentationen zu folgen.

    Es wird auf grundsätzlichen Konzepte des modified Systems eingegangen. Anhand von Codebeispielen wird erklärt, wie das Autoinclude System, die jeweiligen Modul- und Klassenerweiterungen aufgebaut werden und wie man diese einsetzen kann.

    Für die Entwickler, die sich weniger Schreibarbeit wünschen, werden zusätzliche Codebeispiele mit Codebibliotheken von Dritten als Alternativbeispiele vorgestellt. Das kann bei Nicht-Interesse ignoriert werden.

    Wie noRiddle geschrieben hat, bauen im Gegensatz, dazu die Code-Beispiele zu den Klassenerweiterungen aus dem Link zu meinem RobinTheHood/class-extensions Git-Repository tatsächlich auf eine weitere Codebibliothek auf. Die Beispiele lassen sich jedoch fast komplett übernehmen. Nur der Constructor muss in den jeweiligen Klassen ersetzt werden. Alle vorhandenen Methoden (bis auf der Constructor) in den jeweiligen Klassen sind komplett modified-Code, bzw. beschreiben das Interface zu modified.

    Damit es nicht zu Verständnisproblemen kommt, werde ich alle Code-Beispiele in dem class-extensions Git-Repository noch um Beispiele ergänzen, die keine weitere Codebibliothek benötigen.

    Mit besten Grüßen und einen schönen Abend
    Robin

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Re: Klassenerweiterungen
    Antwort #7 am: 14. Februar 2023, 15:39:48
    Tach zusammen.

    Danke für Eure Rückmeldungen! Ich bin am Sonntag noch ein paar Seiten von Robins Doku durchgegangen und bisher handelt es sich - wie er selbst schon geschrieben hat - um die Basics im allg. zum auto-include von modified. Mit dem Thema auto-include habe ich mich bereits beschäftigt - siehe auch meine Beträge dazu im Wiki oder das BETA-Modul das ich hier - vermutlich mit Spaghetti-Code gebastelt - geteilt habe. Aber verstanden habe ich noch nicht alles, deswegen auch in dem ein oder anderen Modul die Nachfragen zu den Hookpoints.

    In einem Thread (finde ich nicht mehr) bin ich auf einen Kommentar eines Mitglieds der Expertengruppe gestoßen, dass er dank eines modified-Team-Mitglieds jetzt auch die Klassenerweiterungen verstanden hat. Deswegen bin ich davon ausgegangen, dass die Klassenerweiterungen ein spezieller Fall sind (Idee dahinter, Vogehen, o.ä.).

    Die Kurzanleitung von noRiddle hilft mir auf jeden Fall auch weiter, u.a um das Git-Repro von Robin besser zu verstehen. Besonders der Teil
    Zitat
    Für die Klassen in denen es Hooks gibt findest du im selben Ordner wie die Klasse immer eine weitere Klasse namens   klasseModules.class.php.
    war mir bisher nicht bewusst. Die beiden genannten Beispiele werde ich mir dann mal anschauen.

    Vermutlich finde ich erst am Wochenende wieder Zeit mich damit weiter zu beschäftigen. Unter der Woche bleibt gerade wenig Zeit für das Hobby. Und beim Programmieren bin ich froh inzwischen grob zu verstehen, was Klassen, Funktionen/Methoden und Contructor sind. :D.

    @awids: Immer her mit Informationen, Tipps ;) .

    Vielleicht ist alles einfacher als gedacht.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #8 am: 14. Februar 2023, 17:17:44
    [...]
    In einem Thread (finde ich nicht mehr) bin ich auf einen Kommentar eines Mitglieds der Expertengruppe gestoßen, dass er dank eines modified-Team-Mitglieds jetzt auch die Klassenerweiterungen verstanden hat. Deswegen bin ich davon ausgegangen, dass die Klassenerweiterungen ein spezieller Fall sind (Idee dahinter, Vogehen, o.ä.).
    [...]

    Nenn das Kind doch einfach beim Namen. "awids" oder "Alex" für Kenner und Vertreter guter Umgangsformen. ;-)

    Das war damals nur neu für mich. Ich habe mir mein ganzes Wissen autodidaktisch angeeignet und diese Methodik kannte ich eben noch nicht. Ich musste mich da also erst einmal reinfuchsen - danach hat es Klick gemacht und ich habe einige Klassenerweiterungen programmiert.

    Ich wünsche dir viel Erfolg beim Ausprobieren und Dazulernen. Das macht meiner Meinung nach eigentlich immer am meisten Spaß, wenn man sich da reinarbeitet. :D

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Re: Klassenerweiterungen
    Antwort #9 am: 14. Februar 2023, 17:45:12
    Ich bin ein alter verwirrter Mann  :crazy: und war mir nicht mehr sicher ob du das warst.  :-)

    Try & Error is my way. Wenn man aber Expertintipps bekommt, rennt man nicht in jeden Error   :-D

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #10 am: 14. Februar 2023, 18:01:22
    Du meinst sicher "Trial & Error", wenn du denn ein sog. saying zitieren wolltest.
    Seit das "one" weg ist kann ich dich ja nicht mehr aufziehen, aber klugsch... kann ich noch :-P

    Gruß,
    noRiddle

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Re: Klassenerweiterungen
    Antwort #11 am: 14. Februar 2023, 20:31:25
    Try, catch, exception? Kein Plan. Vermutlich auch falsch.

    Zum Glück lerne ich jeden Tag noch dazu.

     Bei den Smileys fehlt eigentlich noch einer fürs klug💩.  Wäre auch mal was für meine Azubis. Die können das auch ganz toll.

    Vielleicht ist modified auch das falsche Projekt um zu basteln, bzw PHP die falsche Sprache. Oder Programmierung ist das falsche Hobby. Steine sammeln soll entspannen.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #12 am: 14. Februar 2023, 21:01:06
    [...]
    Steine sammeln soll entspannen.

    Die Entspannung setzt erst ein, wenn du einen Idioten gefunden hast, dem du die Steine an den Kopf schmeißen konntest.  :-D

    Q

    • Fördermitglied
    • Beiträge: 1.536
    Re: Klassenerweiterungen
    Antwort #13 am: 14. Februar 2023, 21:06:32
    Du verwechselst das mit Aggressionsabbau  :lol1:

    Idioten gibt's genug. Zu viele. Und wenn man es ihnen sagt, ist man dran wg. Körperverletzung, weil die Wahrheit bekanntlich weh tut.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Klassenerweiterungen
    Antwort #14 am: 14. Februar 2023, 21:08:03
    Wieso verwechseln? Wir reden doch gerade von Entspannung. Wie man da hin kommt, sollte also unerheblich sein. :D
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    12 Antworten
    3295 Aufrufe
    06. Februar 2019, 23:02:39 von noRiddle (revilonetz)