{"id":3371,"date":"2022-02-21T18:36:52","date_gmt":"2022-02-21T21:36:52","guid":{"rendered":"https:\/\/www.magenteiro.com\/blog\/?p=3371"},"modified":"2022-02-21T18:36:53","modified_gmt":"2022-02-21T21:36:53","slug":"hello-world-magento-2","status":"publish","type":"post","link":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/","title":{"rendered":"Hello World no Magento 2: Como fazer"},"content":{"rendered":"\n<p>Come\u00e7ar a desenvolver para Magento 2 \u00e9 um tanto desafiador. Neste r\u00e1pido artigo vamos ver como criar um simples &#8220;Hello World&#8221; em uma nova URL. Este costuma ser o passo inicial para qualquer pessoa iniciando no desenvolvimento para Magento ou outro framework.<\/p>\n\n\n\n<h2 id=\"h-o-que-voc-vai-precisar\">O que voc\u00ea vai precisar<\/h2>\n\n\n\n<p>Para seguir este passo a passo voc\u00ea deve <a title=\"Veja como instalar o Magento 2 utilizando composer\" href=\"https:\/\/www.magenteiro.com\/blog\/magento-2\/instalar-magento-2-tutorial\/\">ter o Magento instalado<\/a> e permiss\u00e3o de escrita a seus diret\u00f3rios e arquivos.<\/p>\n\n\n\n<p>Voc\u00ea tamb\u00e9m precisar\u00e1 de acesso SSH ou de acesso ao terminal local para executar os comandos do execut\u00e1vel <code>bin\/magento<\/code>. Certifique-se tamb\u00e9m que ele tem <a title=\"Veja meu artigo sobre Permiss\u00f5es de Arquivo de um jeito simples\" href=\"https:\/\/www.magenteiro.com\/blog\/para-magenteiros\/permissoes-um-jeito-simples-de-entender\/\">permiss\u00e3o de execu\u00e7\u00e3o<\/a> (<code>chmod +x bin\/magento<\/code> ).<\/p>\n\n\n\n<h3 id=\"h-aviso-para-n-o-programadores\">Aviso para n\u00e3o programadores<\/h3>\n\n\n\n<p>Se voc\u00ea <strong>n\u00e3o<\/strong> \u00e9 um(a) programador(a) e escolheu o Magento como plataforma, recomendo que busque ajuda profissional para suas necessidades t\u00e9cnicas. <\/p>\n\n\n\n<p>Magento \u00e9 uma excelente solu\u00e7\u00e3o de e-commerce, e muito bem constru\u00eddo. Ele foi concebido de forma que outros desenvolvedores possam criar m\u00f3dulos e componentes sob ele. No entanto, sua arquitetura n\u00e3o foi constru\u00edda para ser entendida por n\u00e3o-desenvolvedores. <\/p>\n\n\n\n<h2 id=\"h-criando-um-m-dulo\">Criando um m\u00f3dulo<\/h2>\n\n\n\n<p>Eu j\u00e1 escrevi aqui no Magenteiro sobre <a href=\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/como-criar-um-modulo-para-magento-2\/\">como criar um m\u00f3dulo base para Magento 2<\/a>. Neste artigo vamos um pouco al\u00e9m e criaremos uma p\u00e1gina com nosso &#8220;Hello World&#8221;. Esse assunto tamb\u00e9m \u00e9 abordado no meu <a href=\"https:\/\/www.magenteiro.com\/magento2?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=helloworld-m2\">curso sobre cria\u00e7\u00e3o de m\u00f3dulos e componentes para Magento 2<\/a> (e claro, com muito mais detalhes e de forma mais pr\u00e1tica).<\/p>\n\n\n\n<p>Todas as melhorias e customiza\u00e7\u00f5es para Magento s\u00e3o feitas atrav\u00e9s de m\u00f3dulos. Portanto, a primeira coisa que voc\u00ea precisa fazer para criar um m\u00f3dulo \u00e9 criar um arquivo XML em <code>app\/code\/&lt;Vendor>\/&lt;Module>\/etc<\/code>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/etc\/module.xml\" data-enlighter-group=\"m1\">&lt;?xml version=\"1.0\"?>\n&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:Module\/etc\/module.xsd\">\n    &lt;module name=\"Magenteiro_HelloWorld\" setup_version=\"1.0.0\"\/>\n&lt;\/config><\/pre>\n\n\n\n<p>O nome da pasta que vai em app\/code geralmente \u00e9 o nome do fornecedor ou empresa que fez o m\u00f3dulo. Tamb\u00e9m chamada de Vendor (fornecedor, em Ingl\u00eas). No nosso exemplo, chamamos esta pasta de <code>Magenteiro<\/code>.<\/p>\n\n\n\n<p>Abaixo dela, temos o nome do nosso m\u00f3dulo. No nosso exemplo, o chamamos de <code>HelloWorld<\/code>.<\/p>\n\n\n\n<p>Desta forma, o nome do nosso m\u00f3dulo passa a ser <code>Magenteiro_HelloWorld<\/code>, localizado em <code>app\/code\/Magenteiro\/HelloWorld<\/code>.<\/p>\n\n\n\n<p>Uma pasta acima, criaremos um arquivo chamado <code>registration.php<\/code>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/registration.php\" data-enlighter-group=\"m2\">&lt;?php\ndeclare(strict_types=1);\n\nuse Magento\\Framework\\Component\\ComponentRegistrar;\n\nComponentRegistrar::register(\n    ComponentRegistrar::MODULE,\n    'Magenteiro_HelloWorld',\n    __DIR__\n);\n<\/pre>\n\n\n\n<p>Por fim, na mesma pasta criaremos um arquivo chamado <code>composer.json<\/code>. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/composer.json\" data-enlighter-group=\"m22\">{\n  \"name\": \"Magenteiro_HelloWorld\",\n  \"description\": \"Um simples Hello World para os Magenteiros\",\n  \"require\": {\n    \"php\": \"*\",\n    \"magento\/framework\": \"\u02c62.0\",\n    \"magento\/module-integration\": \"\u02c62.0\"\n  },\n  \"type\": \"magento2-module\",\n  \"version\": \"1.0\",\n  \"autoload\": {\n    \"files\": [ \"registration.php\" ],\n    \"psr-4\": {\n      \"Magenteiro\\\\HelloWorld\\\\\": \"\"\n    }\n  }\n}<\/pre>\n\n\n\n<p>Com os arquivos acima criados, j\u00e1 podemos ativar nosso m\u00f3dulo.<\/p>\n\n\n\n<p>Para isso, basta ir ao terminal e digitar <code>bin\/magento setup:upgrade<\/code>.<\/p>\n\n\n\n<h2 id=\"h-criando-um-controller\">Criando um controller<\/h2>\n\n\n\n<p>Para criar um <em>controller<\/em> que responder\u00e1 \u00e0 alguma a\u00e7\u00e3o precisaremos inicialmente de dois arquivos:<\/p>\n\n\n\n<ul><li>\/etc\/frontend\/routes.xml<\/li><li>\/Controller\/Index\/Index.php<\/li><\/ul>\n\n\n\n<p>Nosso texto &#8220;Hello World&#8221; ser\u00e1 exibido em <code>\/helloworld<\/code>. Vamos ver como ficaria. Clique em cada um dos arquivos abaixo para ver seu conte\u00fado.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/Controller\/Index\/Index.php\" data-enlighter-group=\"m1-controller\">&lt;?php\ndeclare(strict_types=1);\n\nnamespace Magenteiro\\HelloWorld\\Controller\\Index;\nuse Magento\\Framework\\App\\Action\\HttpGetActionInterface;\nuse Magento\\Framework\\Controller\\ResultFactory;\n\nclass Index implements HttpGetActionInterface\n{\n    private ResultFactory $resultFactory;\n\n    public function __construct(ResultFactory $resultFactory)\n    {\n        $this->resultFactory = $resultFactory;\n    }\n\n    public function execute()\n    {\n        $text = 'Hello World';\n        $response = $this->resultFactory->create(ResultFactory::TYPE_RAW);\n        $response->setContents($text);\n        return $response;\n        \n    }\n}\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/etc\/frontend\/routes.xml\" data-enlighter-group=\"m1-controller\">&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:App\/etc\/routes.xsd\">\n&lt;router id=\"standard\">\n    &lt;route id=\"minharota\" frontName=\"helloworld\">\n        &lt;module name=\"Magenteiro_HelloWorld\"\/>\n    &lt;\/route>\n&lt;\/router>\n&lt;\/config>\n<\/pre>\n\n\n\n<p>Note que o <code>front<strong>N<\/strong>ame<\/code> corresponde \u00e0 primeira parte do futuro URL da minha loja. No nosso caso, https:\/\/www.minhaloja.com.br\/<strong>helloworld<\/strong>. Note tamb\u00e9m que o <strong>N<\/strong> \u00e9 escrito em caixa alta.<\/p>\n\n\n\n<p>Ao acessar a nossa URL teremos nosso primeiro Hello World.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3.png\" alt=\"Hello World sendo exibido na url que criamos.\" class=\"wp-image-3375\" width=\"701\" height=\"122\" srcset=\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3.png 934w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-250x43.png 250w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-700x121.png 700w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-768x133.png 768w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-760x132.png 760w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-500x87.png 500w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-3-120x21.png 120w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 id=\"h-outros-formatos\">Outros formatos<\/h2>\n\n\n\n<p>Tamb\u00e9m podemos devolver um JSON, ou mesmo outros tipos de resposta. Para isso, basicamente precisamos modificar o valor da constante do par\u00e2metro passado para <code>resultFactory::create<\/code>.<\/p>\n\n\n\n<p>Veja um exemplo de retorno em JSON:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"4,5\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    public function execute()\n    {\n        $text = 'Hello World';\n        $response = $this->resultFactory->create(ResultFactory::TYPE_JSON);\n        $response->setData(['hello'=>'magenteiro']);\n        return $response;\n    }<\/pre>\n\n\n\n<p>Desta forma teremos uma resposta como <code>{\"hello\":\"magenteiro\"}<\/code> e os cabe\u00e7alhos JSON passados de acordo.<\/p>\n\n\n\n<h2 id=\"h-aplicando-um-layout-xml\">Aplicando um Layout XML<\/h2>\n\n\n\n<p>O assunto <a href=\"http:\/\/magenteiro.com\/blog\/tag\/layout-xml\/\">layout XML<\/a> \u00e9 extenso e n\u00e3o caberia nesse artigo. Ele \u00e9 abordado aqui no blog e tamb\u00e9m no <a href=\"https:\/\/www.magenteiro.com\/magento2?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=helloworld-m2\">Magento 2: O Curso<\/a> em mais detalhes.<\/p>\n\n\n\n<p>No entanto, apenas para fins de concluirmos este tutorial, vamos usar instru\u00e7\u00f5es de XML para carregar o layout de nossa loja junto com nosso &#8220;Hello World&#8221;.<\/p>\n\n\n\n<p>A primeira coisa que faremos \u00e9 modificar o nosso Controller, para que uma p\u00e1gina\/layout seja renderizado.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"12,19\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/Controller\/Index\/Index.php\" data-enlighter-group=\"mm92\">&lt;?php\ndeclare(strict_types=1);\n\nnamespace Magenteiro\\HelloWorld\\Controller\\Index;\nuse Magento\\Framework\\App\\Action\\HttpGetActionInterface;\nuse Magento\\Framework\\View\\Result\\PageFactory;\n\nclass Index implements HttpGetActionInterface\n{\n    private PageFactory $pageFactory;\n\n    public function __construct(PageFactory $pageFactory)\n    {\n        $this->pageFactory = $pageFactory;\n    }\n\n    public function execute()\n    {\n        $response = $this->pageFactory->create();\n        return $response;\n    }\n}\n<\/pre>\n\n\n\n<p>E agora criaremos um novo arquivo XML.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"app\/code\/Magenteiro\/HelloWorld\/view\/frontend\/layout\/minharota_index_index.xml\" data-enlighter-group=\"mm39827\">&lt;?xml version=\"1.0\"?>\n&lt;page xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" layout=\"1column\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:View\/Layout\/etc\/page_configuration.xsd\">\n    &lt;body>\n        &lt;referenceContainer name=\"content\">\n            &lt;block class=\"Magento\\Framework\\View\\Element\\Text\" name=\"hello.world\">\n                &lt;action method=\"setText\">\n                    &lt;argument name=\"text\" xsi:type=\"string\">Hello World&lt;\/argument>\n                &lt;\/action>\n            &lt;\/block>\n        &lt;\/referenceContainer>\n    &lt;\/body>\n&lt;\/page>\n<\/pre>\n\n\n\n<p>Confuso? Vou explicar os principais pontos.<\/p>\n\n\n\n<p>O arquivo deve se chamar <code>minharota_index_index.xml<\/code> pois o <code>id<\/code> da rota que definimos no <code>routes.xml<\/code> era <code>minharota<\/code>. <\/p>\n\n\n\n<p>Na linha 2 do arquivo defino que quero que o Magento carregue o layout de 1 coluna. Ou seja, n\u00e3o teremos barras ou menus laterais.<\/p>\n\n\n\n<p>Para escrever &#8220;Hello World&#8221;, eu poderia criar uma classe de bloco PHP e associar um template phtml \u00e0 ela. Depois inserir esse bloco no XML dentro de &#8220;content&#8221;.<\/p>\n\n\n\n<p>Ao inv\u00e9s disso, como trata-se apenas de um texto, preferi usar o bloco de texto nativo do Magento. Ele \u00e9 declarado em <code>Magento\\Framework\\View\\Element\\Text<\/code> e referenciei ele na linha 5. Em seguida, chamei o m\u00e9todo <code>setText<\/code> deste bloco e passei &#8220;Hello World&#8221; como argumento.<\/p>\n\n\n\n<p>Isso pode ser feito com qualquer classe de bloco do Magento. Atrav\u00e9s de inje\u00e7\u00e3o de depend\u00eancias tamb\u00e9m podemos alterar e injetar par\u00e2metros nos construtores destas classes a fim de modificar seus comportamentos. Tudo isso diretamente nos arquivos XML.<\/p>\n\n\n\n<p>Bacana n\u00e3o \u00e9 mesmo? O Magento \u00e9 realmente muito flex\u00edvel.<\/p>\n\n\n\n<p>Veja o resultado na minha loja:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4.png\" alt=\"Hello World sendo exibido dentro do layout de nossa loja Magento\" class=\"wp-image-3376\" width=\"525\" height=\"380\" srcset=\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4.png 1392w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-250x181.png 250w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-700x506.png 700w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-768x555.png 768w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-760x549.png 760w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-500x361.png 500w, https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/image-4-120x87.png 120w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>No meu exemplo, estou usando a FireStore, dispon\u00edvel no curso gratuito <a href=\"https:\/\/www.magenteiro.com\/magento2brasil?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=helloworld-m2\">Instalando e Configurando uma loja Magento 2 para o Brasil<\/a>.<\/p>\n\n\n\n<h2 id=\"h-baixe-o-m-dulo\">Baixe o m\u00f3dulo<\/h2>\n\n\n\n<p>Se desejar baixar o m\u00f3dulo de exemplo que fizemos, informe seu nome e e-mail no form abaixo.<\/p>\n\n\n\n<script type=\"text\/javascript\" src=\"\/\/mkt.magenteiro.com\/form\/generate.js?id=60\"><\/script>\n\n\n\n<h2 id=\"h-relacionados-a-este-artigo-voc-pode-gostar\">Relacionados a este artigo (voc\u00ea pode gostar)<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/www.magenteiro.com\/blog\/tag\/series-controller-m2\/\">S\u00e9rie sobre Controllers no Magento 2<\/a><\/li><li><a href=\"https:\/\/www.magenteiro.com\/blog\/tag\/layout-xml\/\">V\u00e1rios artigos sobre Layout XML<\/a> (Magento 1.x e 2.x)<\/li><li><a href=\"https:\/\/www.magenteiro.com\/magento2?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=helloworld-m2\">Curso de cria\u00e7\u00e3o de m\u00f3dulos e componentes para Magento 2 em Portugu\u00eas<\/a><\/li><li><a href=\"https:\/\/www.magenteiro.com\/blog\/magento-2\/layout-xml-block-template\/\">Criando Layout XML, Block e Template no Magento 2<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"Come\u00e7ar a desenvolver para Magento 2 \u00e9 um tanto desafiador. Neste r\u00e1pido artigo vamos ver como criar um simples &#8220;Hello [&hellip;]","protected":false},"author":1,"featured_media":3377,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[27,25],"tags":[117,91,41,60,68],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v19.0 (Yoast SEO v19.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Hello World no Magento 2: Como fazer<\/title>\n<meta name=\"description\" content=\"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba &quot;Hello World&quot;. Faremos isso com 3 tipos de retorno diferentes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hello World no Magento 2: Como fazer\" \/>\n<meta property=\"og:description\" content=\"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba &quot;Hello World&quot;. Faremos isso com 3 tipos de retorno diferentes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Magenteiro | V\u00eddeos, Artigos, e Cursos Magento 2 e Magento 1\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/magenteiro\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-21T21:36:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-21T21:36:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/hello-world-m2-opt.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"480\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ricardo Martins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@magenteiro\" \/>\n<meta name=\"twitter:site\" content=\"@magenteiro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ricardo Martins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#organization\",\"name\":\"Magenteiro\",\"url\":\"https:\/\/www.magenteiro.com\/blog\/\",\"sameAs\":[\"https:\/\/www.instagram.com\/magenteiro\",\"https:\/\/www.linkedin.com\/company\/magenteiro\",\"https:\/\/www.youtube.com\/magenteiro\",\"https:\/\/facebook.com\/magenteiro\",\"https:\/\/twitter.com\/magenteiro\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2017\/04\/logo-white.png\",\"contentUrl\":\"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2017\/04\/logo-white.png\",\"width\":787,\"height\":149,\"caption\":\"Magenteiro\"},\"image\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#website\",\"url\":\"https:\/\/www.magenteiro.com\/blog\/\",\"name\":\"Magenteiro | V\u00eddeos, Artigos, e Cursos Magento 2 e Magento 1\",\"description\":\"Artigos t\u00e9cnicos, tutoriais e muitos v\u00eddeos e cursos sobre Magento. Aqui voc\u00ea encontra dicas para lojistas e desenvolvedores feitos por quem entende do assunto.\",\"publisher\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.magenteiro.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\",\"url\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\",\"name\":\"Hello World no Magento 2: Como fazer\",\"isPartOf\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#website\"},\"datePublished\":\"2022-02-21T21:36:52+00:00\",\"dateModified\":\"2022-02-21T21:36:53+00:00\",\"description\":\"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba \\\"Hello World\\\". Faremos isso com 3 tipos de retorno diferentes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.magenteiro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hello World no Magento 2: Como fazer\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\"},\"author\":{\"name\":\"Ricardo Martins\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/e90c4bb268e5f2dad10d7c9760d4f150\"},\"headline\":\"Hello World no Magento 2: Como fazer\",\"datePublished\":\"2022-02-21T21:36:52+00:00\",\"dateModified\":\"2022-02-21T21:36:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/\"},\"wordCount\":854,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#organization\"},\"keywords\":[\"B\u00e1sico\",\"controllers\",\"Magento 2\",\"Tutoriais Magento\",\"tutorial\"],\"articleSection\":[\"Desenvolvimento\",\"Magento 2\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/e90c4bb268e5f2dad10d7c9760d4f150\",\"name\":\"Ricardo Martins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ae5800c87c4e0f6a4a6b7a3d66aae138?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ae5800c87c4e0f6a4a6b7a3d66aae138?s=96&d=mm&r=g\",\"caption\":\"Ricardo Martins\"},\"description\":\"\u00c9 desenvolvedor web h\u00e1 16 anos e um dos primeiros certificados pela Magento no Brasil. Instrutor de mais de 11 cursos Magento (os principais no magenteiro.com\/cursos) com mais de 14 mil alunos de 105 pa\u00edses, \u00e9 tamb\u00e9m criador do m\u00f3dulo PagSeguro Transparente, usado em mais de 12 mil lojas.\",\"sameAs\":[\"https:\/\/www.magenteiro.com\/\"],\"url\":\"https:\/\/www.magenteiro.com\/blog\/author\/ricardomartins\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hello World no Magento 2: Como fazer","description":"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba \"Hello World\". Faremos isso com 3 tipos de retorno diferentes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/","og_locale":"pt_BR","og_type":"article","og_title":"Hello World no Magento 2: Como fazer","og_description":"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba \"Hello World\". Faremos isso com 3 tipos de retorno diferentes.","og_url":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/","og_site_name":"Magenteiro | V\u00eddeos, Artigos, e Cursos Magento 2 e Magento 1","article_publisher":"https:\/\/facebook.com\/magenteiro","article_published_time":"2022-02-21T21:36:52+00:00","article_modified_time":"2022-02-21T21:36:53+00:00","og_image":[{"width":960,"height":480,"url":"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2022\/02\/hello-world-m2-opt.jpg","type":"image\/jpeg"}],"author":"Ricardo Martins","twitter_card":"summary_large_image","twitter_creator":"@magenteiro","twitter_site":"@magenteiro","twitter_misc":{"Written by":"Ricardo Martins","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.magenteiro.com\/blog\/#organization","name":"Magenteiro","url":"https:\/\/www.magenteiro.com\/blog\/","sameAs":["https:\/\/www.instagram.com\/magenteiro","https:\/\/www.linkedin.com\/company\/magenteiro","https:\/\/www.youtube.com\/magenteiro","https:\/\/facebook.com\/magenteiro","https:\/\/twitter.com\/magenteiro"],"logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.magenteiro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2017\/04\/logo-white.png","contentUrl":"https:\/\/www.magenteiro.com\/blog\/wp-content\/uploads\/2017\/04\/logo-white.png","width":787,"height":149,"caption":"Magenteiro"},"image":{"@id":"https:\/\/www.magenteiro.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.magenteiro.com\/blog\/#website","url":"https:\/\/www.magenteiro.com\/blog\/","name":"Magenteiro | V\u00eddeos, Artigos, e Cursos Magento 2 e Magento 1","description":"Artigos t\u00e9cnicos, tutoriais e muitos v\u00eddeos e cursos sobre Magento. Aqui voc\u00ea encontra dicas para lojistas e desenvolvedores feitos por quem entende do assunto.","publisher":{"@id":"https:\/\/www.magenteiro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.magenteiro.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/","url":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/","name":"Hello World no Magento 2: Como fazer","isPartOf":{"@id":"https:\/\/www.magenteiro.com\/blog\/#website"},"datePublished":"2022-02-21T21:36:52+00:00","dateModified":"2022-02-21T21:36:53+00:00","description":"Veja como come\u00e7ar com o desenvolvimento Magento 2 criando uma p\u00e1gina que exiba \"Hello World\". Faremos isso com 3 tipos de retorno diferentes.","breadcrumb":{"@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.magenteiro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hello World no Magento 2: Como fazer"}]},{"@type":"Article","@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#article","isPartOf":{"@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/"},"author":{"name":"Ricardo Martins","@id":"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/e90c4bb268e5f2dad10d7c9760d4f150"},"headline":"Hello World no Magento 2: Como fazer","datePublished":"2022-02-21T21:36:52+00:00","dateModified":"2022-02-21T21:36:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/"},"wordCount":854,"commentCount":0,"publisher":{"@id":"https:\/\/www.magenteiro.com\/blog\/#organization"},"keywords":["B\u00e1sico","controllers","Magento 2","Tutoriais Magento","tutorial"],"articleSection":["Desenvolvimento","Magento 2"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.magenteiro.com\/blog\/magento-2\/desenvolvimento-m2\/hello-world-magento-2\/#respond"]}]},{"@type":"Person","@id":"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/e90c4bb268e5f2dad10d7c9760d4f150","name":"Ricardo Martins","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.magenteiro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ae5800c87c4e0f6a4a6b7a3d66aae138?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae5800c87c4e0f6a4a6b7a3d66aae138?s=96&d=mm&r=g","caption":"Ricardo Martins"},"description":"\u00c9 desenvolvedor web h\u00e1 16 anos e um dos primeiros certificados pela Magento no Brasil. Instrutor de mais de 11 cursos Magento (os principais no magenteiro.com\/cursos) com mais de 14 mil alunos de 105 pa\u00edses, \u00e9 tamb\u00e9m criador do m\u00f3dulo PagSeguro Transparente, usado em mais de 12 mil lojas.","sameAs":["https:\/\/www.magenteiro.com\/"],"url":"https:\/\/www.magenteiro.com\/blog\/author\/ricardomartins\/"}]}},"_links":{"self":[{"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/posts\/3371"}],"collection":[{"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/comments?post=3371"}],"version-history":[{"count":4,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/posts\/3371\/revisions"}],"predecessor-version":[{"id":3380,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/posts\/3371\/revisions\/3380"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/media\/3377"}],"wp:attachment":[{"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/media?parent=3371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/categories?post=3371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.magenteiro.com\/blog\/wp-json\/wp\/v2\/tags?post=3371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}