実際には、のインスタンスを返す必要はありません\Magento\Framework\View\Result\Page
。execute
インタフェースを実装するクラスのインスタンスを返すことが期待されています\Magento\Framework\Controller\ResultInterface
。
\Magento\Framework\View\Result\Page
1つの可能な戻り値です。
その他の可能な返品は
\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
他にもあるかもしれません。
メソッドを見てくださいMagento\Framework\App\Action\Action::dispatch()
。
これは、で\Magento\Framework\Controller\ResultInterface
宣言されたメソッドを呼び出すことにより、さまざまなアクションが実行された結果のインスタンスを返しますResultInterface
。
このdispatch
メソッド呼び出し$result = $this->execute();
であるexecute
コントローラアクションからの方法。したがって、これは一貫性のためであり、コントローラーアクションに別の動作を導入しやすくするためだと思います。実装する新しいクラスを追加するだけでResultInterface
、フレームワークによってすべて処理されます。