Replace Hook Protectet Eigenschaften von Proxys

Hallo zusammen,

ich bin dabei die Funktion Shopware_Components_Document::render zu erweitern bzw zu ersetzen, da ich bei der Belegerstellung einige Funktionalitäten von mPDF nutzen möchte die in der Standartversion nicht unterstützt werden.

Dabei registriere ich einen Replace Hook auf die Funktion.

$this->subscribeEvent(
   'Shopware_Components_Document::render::replace',
   'replaceDocumentRender'
);

Das klappt soweit auch, allerdings stehen kann ich nicht auf die protectet Variablen der Klasse zugreifen.

public function replaceDocumentRender(Enlight_Hook_HookArgs $arguments)
{
    $sub = $arguments->getSubject();
    if($sub->_typID != 5)
        $sub->executeParent("render", $sub->_render);
    else
        //doSomething

}

Gibt es eine Möglichkeit auf die Protectet Eigenschaften zuzugreifen?

Dazu habe ich im Forum diesen Beitrag https://forum.shopware.com/discussion/10778/geloest-replace-hook-wie-komme-ich-an-protected-variablen

gefunden.

 

Gruß Felix

Hallo @Felix0815‍,

wie ich sehe, gibt keine Möglichkeite mit diese Class.

aber immer gibt eine Problemumgehung. was ich will machen.

ein neue var in meinem Plugin

doc_id

und hook initDocument get Param $documentID und sparen es in meine Parm doc_id dann einfach executeparent.

in Render Hook dann prüfe ich ob $this->doc_id != 5  ===> executeparent und ich glaube Sie brauchen nicht $sub->_render

Sie dürfen funktion parm $_renderer benutzen.

Viele Grüße,

Ahmad.

 

Müsste gehn mit

$args->getSubject()->getPropertyName();

oder

$args->getSubject()->get(‚propertyName‘);

@steinsoftware schrieb:

Müsste gehn mit

$args->getSubject()->getPropertyName();

oder

$args->getSubject()->get(‚propertyName‘);

in diese Class gibt keine getPropertyName funktion 

1 „Gefällt mir“