Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] DI - Mapping

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] DI - Mapping

    Hallo,

    ich weiß nicht, ob das jetzt zu trivial ist, aber mich würde mal eure Meinung dazu interessieren.

    I. d. R. ist es ja so, dass, wenn man einen DI-Container benutzt, ein Objekt etwa so geholt wird:

    PHP-Code:
    $object $container->getObject('Klasse'); 
    Zumindest habe ich das überall so gesehen. Das Problem dabei ist nun natürlich, dass es dann für jede Klasse nur eine Konfiguration geben kann. Nun als ein Bsp. ein Session-Wrapper - einmal für Authentifikation, einmal für Messages (Sinn und Unsinn sei dahin gestellt). Wäre es nicht sinnvoller, das etwa so zu machen:
    PHP-Code:
    //Auth
    $authSession $container->getObject('authSession');
    //Message-Container
    $messageSession $container->getObject('messageSession'); 
    Dann würde man für diese Bezeichner noch zusätzlich den Klassennamen hinterlegen.

  • #2
    Hallo xm22,

    bei einem DI-Container sollst du eben nicht die Klasse "fordern", sondern einen "named service". Hinter diesem Steckt dann erst die Konfiguration der Service-Implementierung und der Abhängigkeiten. Übergibst du nur die Klasse, kannst du die Abhängigkeiten garnicht vernünftig auflösen (und das wäre unter uns gesagt auch kein DI, sondern lediglich ein ServiceLocator o.ä.).
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design [B]before[/B] you start to write code!
    2. Discuss and review it together with [B]experts[/B]!
    3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
    4. Write [I][B]clean and reusable[/B][/I] software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Kommentar


    • #3
      So meinte ich das ja - Also wird, wenn man ein Objekt haben möchte, der "Name" übergeben, der nur als Identifikator für der Konfiguration genutzt wird.

      Kommentar


      • #4
        Dann sind wir uns einig!
        Viele Grüße,
        Dr.E.

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        1. Think about software design [B]before[/B] you start to write code!
        2. Discuss and review it together with [B]experts[/B]!
        3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
        4. Write [I][B]clean and reusable[/B][/I] software only!
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        Kommentar


        • #5
          Alles klar

          Kommentar


          • #6
            Ich muss mich gerade mal für diese Klarstellung bedanken. Es hat soeben klick in meinem Kopf gemacht

            Kommentar

            Lädt...
            X