Я нашел решение после некоторого расследования ;-).
Этот ресурс был очень полезным: https://github.com/tzyganu/Magento2SampleModule.
Sample модуль для этого решения здесь: https://github.com/nuclearhead/M2OverrideAction
Эффект в том, что если вы идете в URI:/клиент/счет/Логин: метод из пользовательского модуля уволят вместо метода по умолчанию от модуля Magento_Customer , а URL останется прежним. Конечно, вы можете сделать то же самое с действием loginPost.
Я сделал это с переопределением класса маршрутизатора в di.xml. Я упростил версию модуля SampleNews от tzyganu, чтобы уточнить решение. класс маршрутизатор проверяет, что URI возвращает запрос- метод $> getPathInfo(), а затем устанавливает новые конфиги в $ запросу:
$request->setModuleName('overrideaction')
->setControllerName('view')
->setActionName('index');
$request->setDispatched(true);
$this->dispatched = true;
return $this->actionFactory->create(
'Magento\Framework\App\Action\Forward',
['request' => $request]
);
ЦЭТ/интерфейс/di.xml моего пользовательского модуля:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<type name="Magento\Framework\App\RouterList">
<arguments>
<argument name="routerList" xsi:type="array">
<item name="customer" xsi:type="array">
<item name="class" xsi:type="string">MiniSamples\OverrideAction\Controller\Router</item>
<item name="disable" xsi:type="boolean">false</item>
<item name="sortOrder" xsi:type="string">9</item>
</item>
</argument>
</arguments>
</type>
</config>
Если бы я мог использовать маршрутизатор, чтобы просто маршрутизировать клиент/учетную запись/loginPost в мой контроллер, было бы хорошо. Но опять же, как определить это в routes.xml? – wit0ld