5.5 - Einkaufswelten Elemente in alten (legacy) Plugins

Wir sind gerade dabei, unsere Plugins 5.5 kompatibel zu kriegen. Hierbei scheint es ein prinzipielles Problem mit Einkaufswelten / Emotion Components zu geben.

Das Event “Shopware_Controllers_Widgets_Emotion_AddElement” ist ja in 5.5 entfallen, es ist also zwingend ein ComponentHandler zu implementieren. 
Dieser muss dann über die services.xml () registriert werden.
(siehe auch Custom shopping world elements)

Das klappt - im neuen Plugin-System! - natürlich auch prima.

Wir haben nun allerdings etliche Plugins, die wir (noch) nicht auf das neue System umstellen wollen/können. Und ich habe bisher keine Möglichkeit gefunden, den ComponentHandler per PHP-Code zu registrieren - vielleicht fehlt mir hier aber einfach auch Wissen.

Auch an [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍:  Gibt es dazu eine Möglichkeit? Ich denke, dass das noch andere Plugin-Hersteller betreffen wird.

Vielen Dank,
Nils

Hey @netzperfekt‍,

es gibs zurzeit wirklich kein Event um sich dort einzuhängen. Man könnte sich auf Enlight_Bootstrap_AfterInitResource_shopware_emotion.emotion_element_service hängen und via Closure hack die Components erweitern.

Ich hab mal ein Ticket für Events angelegt Shopware Issuetracker

1 „Gefällt mir“

Hi @Shyim‍,

danke - ich hatte es fast schon befürchtet. Den Hack hatte ich schon angedacht, aber bin nicht so recht weiter gekommen, und ich fände das auch eher “unschön”.

Danke fürs Ticket!

Grüße
Nils

@netzperfekt‍ ist drin SW-22394 - Add event for registering component handler · shopware/shopware@11fc5eb · GitHub

1 „Gefällt mir“

@Shyim‍ Klasse, vielen Dank. Wird es voraussichtlich noch einen 5.5 RC2 geben, oder geht ihr gleich in die Vollen?

Grüße
Nils

@netzperfekt‍ zurzeit ist keine RC2 geplant.

Für die Nachwelt:

$this->subscribeEvent(‚Shopware_Emotion_Collect_Emotion_Component_Handlers‘,  ‚registerEmotionComponentHandler‘);

public function registerEmotionComponentHandler(\Enlight_Event_EventArgs $args)
{
    $result = new ArrayCollection();
    $result->add(new EmotionComponentHandler());

    return $result;
}

(Natürlich muss der EmotionComponentHandler ebenfalls implementiert sein, siehe z.B. Custom shopping world elements

@netzperfekt‍ Wir haben die Deprecation des EventComponentHandlers noch einmal reverted: Merge pull request #6924 in SW/shopware from sw-22404/5.5/revert-even… · shopware/shopware@2cbd356 · GitHub Es gab noch eine Reihe anderer Nutzer des Services so dass wir die Deprecation noch einmal aufgeschoben haben.

Sorry dass es für Dich jetzt schon zu spät und die Anpassung schon abgeschlossen ist.  Vielleicht ist es ein kleiner Trost dass die Implementierung als ComponentHandler deutlich schneller ist als über das alte Event.

@hsoebbing‍ kein Problem, danke für die Info.

@hsoebbing schrieb:

Wir haben die Deprecation des EventComponentHandlers noch einmal reverted: https://github.com/shopware/shopware/commit/2cbd35675a78e0ced7eb93589ca61aa086712fe0 Es gab noch eine Reihe anderer Nutzer des Services so dass wir die Deprecation noch einmal aufgeschoben haben.

Sorry dass es für Dich jetzt schon zu spät und die Anpassung schon abgeschlossen ist.  Vielleicht ist es ein kleiner Trost dass die Implementierung als ComponentHandler deutlich schneller ist als über das alte Event.

Das bedeutet, die Plugin Widgets, die noch bis 5.5 kompatibel waren (noch nicht das 5.2er Plugin System umgesetzt, keine Services, …) sind mit der 5.5 weiterhin kompatibel?
Die Shopware_Controllers_Widgets_Emotion_AddElement bleibt bis zuer 6er weiterhin bestehen und nutzbar?

Schöne Grüße,
Niklas

Hallo Niklas,

ja die Plugins sind weiterhin kompatibel. Du solltest dir aber überlegen, ob du das ganze zu ComponentHandlern umbaust, da dies um einiges schneller ist. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

Hallo Michael,

mit dem Wechsel auf das 5.2er Plugin System muss das ehe umstrukturiert werden, der (sollte) aber gerade noch nicht anstehen.
Aber Danke für das Feedback - gibt es noch einen RC2, damit man das final abnehmen kann?

Schöne Grüße,
Niklas

Hallo Niklas,

aktuell ist kein RC2 geplant.

Viele Grüße aus Schöppingen

 Michael Telgmann