Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: Vorteil von Services/Dependency Injection?

  1. #1
    Contao-Nutzer
    Registriert seit
    09.09.2015.
    Beiträge
    88

    Frage Vorteil von Services/Dependency Injection?

    Hallo Community,

    im Zuge der Contao 4 Bundles lese ich nun immer von Services und Dependency Injection.
    Grundsätzlich ist mir aus anderen Programmiersprachen (z.B. C#) der Vorteil von Dependency Injection bei Großprojekten bewusst.
    Für die Entwicklung eines Contao 4 Bundles sehe ich noch keinen Vorteil. Bis jetzt konnte ich alles auch ohne Services lösen.
    Was ist der Vorteil von Services?
    Gibt es Anwendungsfälle aus der Contao Welt, für die Services unumgänglich sind?

    Freue mich über eure Antworten!

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.049
    Partner-ID
    10107

    Standard

    Wann du einen Service brauchst und wann nicht lässt sich nicht pauschal beantworten.

    Prinzipiell kannst du in Contao 4 auch Inhaltselemente und Module als Controller umsetzen. Und Controller können wiederum Services sein und daher mit beliebigen Parametern injected werden.

  3. #3
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Wenn dir grundsätzlich Dependency Injection und Services bekannt sind, verstehe ich nicht, warum du hier keinen Vorteil bei der Entwicklung von Contao Bundles siehst.

    Was ist der Vorteil von Services?
    Services ist doch eine Schlussfolgerung von Dependency Injection. Daher ist die Frage, was die Vorteile von Dependency Injection sind.

    Hier nur mal zwei genannt.

    • Code wird expliziter, da Abhängigkeiten klar zu erkennen sind
    • Möglichkeit Unit-Tests/Spezifikationen zu schreiben



    Gibt es Anwendungsfälle aus der Contao Welt, für die Services unumgänglich sind?
    Z.B. Datenbankanbindung, ...

  4. #4
    Contao-Nutzer
    Registriert seit
    09.09.2015.
    Beiträge
    88

    Frage

    Danke für eure Antworten.

    Gibt es Anwendungsfälle aus der Contao Welt, für die Services unumgänglich sind?
    Z.B. Datenbankanbindung, ...
    Wie wurde die Datenbankanbindung dann in Contao 3 gelöst?

  5. #5
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Du hast wohl
    PHP-Code:
    Database::getInstance(); 
    geschrieben womit du immer die DB-Verbindung erhalten hast.
    Eine explizite Abhängigkeit, die niemand will. Du kannst keine Tests schreiben ohne echte DB-Verbindung. Du hast auch keine Chance diese Klasse auszutauschen und sie was anderes machen zu lassen.
    Mit DI injectest du dir z.B. die Connection. Also nur ein Interface, das den Vertrag erfüllt. Es muss keine echte DB-Verbindung bestehen, um deine Komponente zu testen oder anderweitig zu verwenden.

    Es hat wirklich nicht viel mit Contao zu tun.
    DI und Services sind die Basis für gute Software-Entwicklung. Für alle modernen Prinzipien der Software-Entwicklung, von Testability bis hin zu Composition over Inheritance

    Vielleicht kannst du etwas konkreter werden was deine Fragen betrifft? Wenn du dich gemäss eigener Aussage mit DI und Services auskennst, müsste eigentlich alles klar sein.
    Womöglich besteht das Verständnisproblem in etwas was konkret Contao betrifft?
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •