Anfängerfrage: Eigens Coding wird bei Codegenerierung durch EXTBASE überschrieben

  • Ottscho Ottscho
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    24. 07. 2012, 19:42

    Hallo zusammen,

    ich mache gerade meine ersten Schritte mit EXTBASE...

    Ich habe ein Domain Model erstellt und gespeichert. Danach habe ich ein paar Funktionen in den generierten Model- Klassen hinzugefügt.

    Später habe ich das Domain Model unter EXTBASE leicht verändert und wieder gespeichert. EXTBASE hat dann natürlich die Klassen neu generiert. Nur blöd, dass mein eigens Coding damit futsch ist.

    Ich kann mir nicht vorstellen, dass ich der Erste bin der sich mit diesem Thema rumschlägt. Allerdings haben meine recheren über GOOGLE keine Lösung ergeben.

    [b]Kurzfassung[/b]
    1. Model Speichern
    2. Eigens Coding in den generierten Klassen hinzufügen
    3. Model Speichern
    --> manuell hinzugefügter code bleibt nicht erhalten...

    Kennt jemand diesbezüglich eine Lösung bzw. einen Workaround? Eventuell von den generierten Klassen erben...???

    Danke & Grüße
    Ottscho


  • 1
  • robsch robsch
    T3PO
    0 x
    22 Beiträge
    0 Hilfreiche Beiträge
    25. 07. 2012, 08:57

    Du hast mit dem Extension-Builder gearbeitet, oder? Bei dem gibt es eine Roundtrip-Einstellung, die du setzen kannst, damit deine manuellen Arbeiten nicht überschrieben werden. Schau mal bei der Extension-Builder Erweiterung nach. Dort solltest du die Einstellung finden. Du kannst dann ggf. noch Einstellungen in der Datei meineExt/Configuration/ExtensionBuilder/settings.yaml machen.

    Gruß,
    Robert


  • 0 x
    25. 07. 2012, 15:15

    Wie robsch schon gesagt hat, musst du im Backend in den Eigenschaften der Konfiguration des Extension Builders (zufinden im Extension Manager in deiner Extension).

    Der Punkt nennt sich:

    [b]Enable edit mode (roundtrip)[/b]

    Dies muss aktiviert sein!
    Sehr zu empfehlen ist auch die Einstellung (zu aktivieren):

    [b]Make a backup on each save[/b]

    Dann musst du noch folgende Datei im folgenden Verzeichnis deiner Extension bearbeiten:

    DeineExtension\Configuration\ExtensionBuilder\settings.yaml

    Beispielsweise so:

    1. ############ extension settings ##############
    2.  
    3. overwriteSettings:
    4. Classes:
    5. Controller: keep
    6.  
    7. Domain:
    8. Model: merge
    9. Repository: merge
    10.  
    11. Configuration:
    12. TCA: merge
    13. TypoScript: merge
    14.  
    15. Resources:
    16. Private:
    17. Language:
    18. #locallang.xml: merge
    19. #locallang.xlf: merge
    20. Partials: keep
    21. Templates: keep
    22. Public: keep
    23.  
    24. ext_icon.gif: keep
    25.  
    26. ext_localconf.php: merge

    ACHTUNG! Bei YAML sind die Abstände nicht wahllos vor den Werten. Auswendig weiß ich jetzt gerade nicht mehr wie genau die Abstände sein müssen. Sprich auch ob Leerzeichen oder Tabbstops (meine letzteres).

    Ist etwas auskommentiert (#), so überschreibt er beim nächsten Speichern alles.
    Mit "merge" und "keep" kannst du bestimmen ob er z.B. neue Controller hinzufügen soll (merge) oder er sie gar nicht bearbeiten darf (keep).

    Mit dem neuen ExtensionBuilder v2.4 habe ich jedoch ein Phänomen, das bei einem Controller - trotz merge - die Funktionen überschrieben werden... ich bin mir hier jetzt aber nicht sicher ob dies nicht evtl. ein Fehler meinerseits ist.

  • Ottscho Ottscho
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    25. 07. 2012, 23:23

    "[b]roundtrip[/b]" ist das Zauberwort, vielen Dank robsch und kapale...!!! :p

    Eine sehr gute Anleitung zur Konfiguration des roundtrip im extension_builder findet man auch bei [url=www.youtube.com/watch?v=LB1mrVIfQtA]youtube[/url]...

  • HH HH
    Jedi-Meister
    0 x
    351 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2013, 21:03

    Hallo,
    kann ich dem Roundtrip mode auch beibringen, dass er alle meine anderen Icons (für meine eigene Klassen) NICHT überschreibt?!
    Danke!!!

  • 1