Por que Registration.php foi adicionado no magento-2.0.0-RC?
-
13-12-2019 - |
Pergunta
Recentemente magento-2.0.0-RC
foi lançado e eles adicionaram registration.php
em cada pasta raiz do módulo?Então, eu só quero saber se há algum motivo para isso?
Alguém pode esclarecer isso?
Solução
registration.php
é uma espécie de ponto de entrada do seu módulo.É o equivalente a app/etc/modules/[Namespace]_[Module].xml
do Magento 1.
Mas agora faz parte do próprio módulo.
permite criar módulos no app/code
pasta e no vendor
pasta também.
Não importa onde você o adicione, este arquivo será coletado pelo Magento e seu módulo será levado em consideração.
Outras dicas
notei que duas coisas foram alteradas na versão Magento.1.0.0-beta (outubro) para Magento ver.2.0.0-rc2
1.Adicionado novo arquivo na pasta root do módulo chamado registro.php ex: -app code Sugarcode test registration.php
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sugarcode_Test',
__DIR__
);
2.Event.xml foi alterado anteriormente, somos mencionados nome do método na tag de observador no evento.xml agora o método foi removido Juts que você precisa mencionar apenas a instância que é
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
<event name="sales_order_grid_collection_load_before">
<observer name="sales_order_grid_test" instance="Sugarcode\Test\Observer\Addtest" />
</event>
</config>
e na pasta /ModuleName/Observer você precisa criar um arquivo com a função
public function execute()
aquilo é
<?php
namespace Sugarcode\Test\Observer;
class Addtest
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$obj=$observer->getEvent()->getOrderGridCollection();
$obj->getSelect()->joinLeft(
['testt' => 'testtable'],
"(main_table.entity_id = testt.id)",
[
'testt.title as title'
]
);
//$this->printlogquery(true);
//return $obj;
}
}