Por que registration.php adicionado no magento-2.0.0-RC?

15

Recentemente magento-2.0.0-RCfoi lançado e eles foram adicionados registration.phpem cada pasta raiz do módulo? Então, eu só quero saber se há alguma razão para isso?

Alguém pode colocar uma luz nisso?

Keyur Shah
fonte

Respostas:

12

registration.phpé o tipo de ponto de entrada do seu módulo. É o equivalente app/etc/modules/[Namespace]_[Module].xmlao Magento 1.
Mas agora, faz parte do próprio módulo.
permite criar módulos na app/codepasta e também na vendorpasta.
Não importa onde você o adiciona, este arquivo será escolhido pelo Magento e seu módulo será levado em consideração.

Marius
fonte
Onde você adiciona, significa que posso colocar esse arquivo em qualquer lugar, como bloco, modelo ou diretório do controlador ou qualquer outro diretório? @Marius
Keyur Shah
E há alguma razão para isso porque config.php já está lá @Marius
Keyur Shah
2
em config.phpsomente o módulo nomes aparecem e seu status (ativado / desativado). Não há caminho para o módulo. Como eu disse na resposta, registration.phppermite que você tenha módulos foraapp/code
Marius
3
Veja isso para obter mais detalhes: maxyek.wordpress.com/2015/03/27/…
Marius
@ Marius: Então o módulo não deve funcionar sem o registration.php, certo?
Sukeshini 13/07/16
1

notei que duas coisas foram alteradas do Magento ver. 1.0.0-beta (outubro) para Magento ver. 2.0.0-rc2
1. adicionado novo arquivo na pasta raiz do módulo chamado registration.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, mencionamos o nome do método na tag do observador em event.xml agora o método foi removido juts, 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()

isso é

<?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;
    }
}
Pradeep Kumar
fonte