Magento 2 Controller Raw

Dando continuidade aos nossos estudos sobre Response Type, hoje falaremos de Magento 2 Controller Raw.

Magento 2 Controller Raw

É uma forma de retornar conteúdo a partir de uma determinada rota. Assim como no último artigo vimos como retornar um conteúdo Json através de um Controller, hoje falaremos como retornar um conteúdo string através de um Controller também.

Voltando ao nosso módulo, temos o nosso Controller:

<?php

namespace ForMage\Learning\Controller\Page;

use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\Controller\Result\JsonFactory;
use Magento\Framework\Controller\Result\Raw;

class ResponseType extends \Magento\Framework\App\Action\Action
{
    protected $pageFactory;
    protected $jsonFactory;
    protected $raw;

    public function __construct(
        Context $context,
        PageFactory $page,
        JsonFactory $jsonFactory,
        Raw $raw
    ) {
        parent::__construct($context);
        $this->pageFactory = $page;
        $this->jsonFactory = $jsonFactory;
        $this->raw = $raw;
    }

    public function execute()
    {
//        return $this->pageFactory->create();
//        return $this->jsonFactory->create()->setData(['name' => 'Abraão', 'city' => 'Rio de Janeiro', 'customer' => [
//            'name' => 'customer name',
//            'email' => 'customer email'
//        ]]);
        return $this->raw->setContents('That is my raw content');
    }
}

O que fizemos foi adicionar use Magento\Framework\Controller\Result\Raw; em nosso Controller e alterar o construtor incluindo o Raw:

public function __construct(
        Context $context,
        PageFactory $page,
        JsonFactory $jsonFactory,
        Raw $raw
    ) {
        parent::__construct($context);
        $this->pageFactory = $page;
        $this->jsonFactory = $jsonFactory;
        $this->raw = $raw;
    }

E modificar o nosso método execute():

    public function execute()
    {
//        return $this->pageFactory->create();
//        return $this->jsonFactory->create()->setData(['name' => 'Abraão', 'city' => 'Rio de Janeiro', 'customer' => [
//            'name' => 'customer name',
//            'email' => 'customer email'
//        ]]);
        return $this->raw->setContents('That is my raw content');
    }

Feito isso, ao acessar a nossa rota, temos o nosso resultado:

4Mage - Magento 2 Response Type Raw

Acima, vimos como é fácil trabalhar com retorno de conteúdo através de um Controller (rota) em Magento 2.

Para se aprofundar nos seus estudos sobre Controller no Magento 2

Dúvidas? Posta aí!

Um abraço!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *