Eigentlich ist es nicht notwendig, eine Instanz von zurückzugeben \Magento\Framework\View\Result\Page
. Es execute
wird erwartet, dass das eine Instanz einer Klasse zurückgibt, die die Schnittstelle implementiert \Magento\Framework\Controller\ResultInterface
.
\Magento\Framework\View\Result\Page
ist nur eine mögliche Rückkehr.
Andere mögliche Rückgaben sind
\Magento\Framework\Controller\Result\Redirect
\Magento\Framework\Controller\Result\Raw
\Magento\Framework\View\Result\Layout
\Magento\Framework\Controller\Result\Forward
\Magento\Framework\Controller\Result\Json
und es kann andere geben.
Schauen Sie sich die Methode an Magento\Framework\App\Action\Action::dispatch()
.
Dies sollte eine Instanz von zurückgeben \Magento\Framework\Controller\ResultInterface
und basierend auf dem Ergebnis werden verschiedene Aktionen ausgeführt, wiederum durch Aufrufen von Methoden, die in der deklariert sind ResultInterface
.
Diese dispatch
Methode ruft $result = $this->execute();
die execute
Methode aus der Controller-Aktion auf. Ich schätze, dies dient der Konsistenz und der Erleichterung, ein anderes Verhalten für eine Controller-Aktion einzuführen. Sie müssen nur eine neue Klasse hinzufügen, die implementiert wird, ResultInterface
und alles wird vom Framework verwaltet.