¿Por qué registro.php agregado en magento-2.0.0-RC?

15

¿ magento-2.0.0-RCSe lanzó recientemente y se agregaron registration.phpen cada carpeta raíz del módulo? Así que solo quiero saber si hay alguna razón para eso.

¿Alguien puede aclarar esto?

Keyur Shah
fuente

Respuestas:

12

registration.phpes una especie de punto de entrada de su módulo. Es el equivalente de app/etc/modules/[Namespace]_[Module].xmlMagento 1.
Pero ahora, es parte del módulo en sí.
le permite crear módulos en la app/codecarpeta y también en la vendorcarpeta.
No importa dónde lo agregue, Magento recogerá este archivo y se tendrá en cuenta su módulo.

Marius
fuente
¿Dónde lo agrega significa que puedo colocar este archivo en cualquier lugar como bloque, modelo o directorio del controlador o cualquier otro directorio? @Marius
Keyur Shah
¿Y hay alguna razón para eso porque config.php ya está allí @Marius
Keyur Shah
2
en config.phpsólo el módulo aparecen nombres y su estado (activado / desactivado). No hay ruta al módulo. Como dije en la respuesta, registration.phpte permite tener módulos afueraapp/code
Marius
3
Vea esto para más detalles: maxyek.wordpress.com/2015/03/27/…
Marius
@ Mario: Entonces, el módulo no debería funcionar sin registro.php ¿verdad?
Sukeshini
1

Noté que dos cosas cambiaron de Magento ver. 1.0.0-beta (Oct) a Magento ver. 2.0.0-rc2
1. se agregó un nuevo archivo en la carpeta raíz del módulo llamado registration.php, por ejemplo: -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 se modificó anteriormente, se menciona el nombre del método en la etiqueta del observador en event.xml, ahora se eliminó el método pero solo debe mencionar la instancia que es

<?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>

y en la carpeta / ModuleName / Observer necesita crear un archivo con función

public function execute()

es decir

<?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
fuente