32
loading...
This website collects cookies to deliver better user experience
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<referenceContainer name="content">
<block class="{Vendor}\{Module}\Block\{BlockName}" name="{block_name}" template="{Vendor}_{Module}::{paths}/{file_name}.phtml" />
</referenceContainer>
</page>
\Magento\Framework\View\Element\Template
.<?php
namespace {Vendor}\{Module}\Block;
use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\View\Element\Template;
class {BlockName} extends Template
{
public function __construct(
Context $context,
array $data = []
) {
parent::__construct($context, $data);
}
public function {methodName}(): {type}
{
// Code here
}
}
Caso o template não necessite de lógica, é recomendado não deixar o atributo class
no arquivo de layout ou criar um bloco e apenas extender a classe \Magento\Framework\View\Element\Template
, sem inserir nenhum método.
{Vendor}_{Module}::{paths}/{file_name}.phtml
. Arquivos de template devem seguir a estrutura de pastas \{Vendor}\{Module}\view\{area}\templates\{paths}\{file_name}.phtml
. Onde os templates podem não estar dentro de nenhum diretório, onde referenciado {paths}
ou até mesmo estar inseridos dentro de um ou mais diretórios.$block
para acessar os métodos públicos que a classe Block disponibiliza.<?php
/**
* @var \{Vendor}\{Module}\Block\{BlockName} $block
*/
$block->{methodName}();
?>
{test}
) devem ser alterados na implementação do código.rm -rf var/generation/
rm -rf generated/
php bin/magento setup:di:compile
php bin/magento cache:clean
php bin/magento flush
- app/
- code/
- {Vendor}/
- {Module}/
- etc/
- module.xml
- view/
- {area}/
- layout/
- {router_id}_{controller_directory}_{controller_name}.xml
- templates/
- {paths}/
- {file_name}.phtml
- registration.php
- composer.json