Zum Inhalt springen

Unterschied zwischen GeneralUtility->makeInstance() und ObjectManager->get()

Erstellt am 7. Dezember 2014 · 4 Antworten · letzte Antwort am 11. Dezember 2014

Tags: PHP, Frage

MaolLambo ·

Hi Leute,

Kann mir einer bitte den Unterschied erklären zwischen:
1) GeneralUtility->makeInstance()
und
2) ObjectManager->get()?
Wann wird welches dieser zwei Methoden zur Instanziierung einer Klasse verwendet?

Schöne Grüße

Schweriner ·

Makeinstance ist eine statische Methode die Du immer aufrufen kannst und der Du soweit ich weiß auch direkt Parameter für die Instanzierung übergeben kannst. Damit kannst Du also immer Instanzen erzeugen auch wenn beispielsweise Extbase Komponenten und damit der Objectmanager (z.B. bei einem Hook) noch gar nicht existieren.

Der Objectmanager muss zunächst selbst instanziert werden wenn er noch nicht vorhanden ist z.B. mit makeInstance. Ich probier mal ein sinnvolles Beispiel rauszusuchen...

EDIT: Hier zum Beispiel: https://gist.github.com/akiessling/8266017

MaolLambo ·

Ok aber wird denn objectManager nicht für jeden Controller automatisch instanziiert? Normalerweise brauch ich doch nicht selbst den objectManager mit GeneralUtility::makeInstance() zu instanziieren sondern kann doch direct in der Action mit $this->objectManager drauf zugreifen?