Un controlador frontend te permite exponer rutas propias para paginas personalizadas o endpoints simples.
Definir ruta
Archivo etc/frontend/routes.xml:
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="standard"> <route id="gdwhello" frontName="gdwhello"> <module name="GDW_Hello"/> </route> </router></config>Crear controlador
Archivo Controller/Index/Index.php:
<?phpnamespace GDW\Hello\Controller\Index;
use Magento\Framework\App\Action\Action;use Magento\Framework\App\Action\Context;use Magento\Framework\Controller\ResultFactory;
class Index extends Action{ public function __construct(Context $context) { parent::__construct($context); }
public function execute() { $result = $this->resultFactory->create(ResultFactory::TYPE_RAW); $result->setContents('Hola desde Magento 2'); return $result; }}Probar en navegador
Visita: /gdwhello/index/index
Conclusión
Este patron es útil para crear endpoints internos y paginas custom sin depender del core.