Dlaczego rejestracja.php dodana w Magento-2.0.0-RC?

15

Niedawno magento-2.0.0-RCzostał uruchomiony i dodali registration.phpw każdym folderze głównym modułu? Więc chcę tylko wiedzieć, czy jest po temu jakiś powód?

Czy ktoś może to wyjaśnić?

Keyur Shah
źródło

Odpowiedzi:

12

registration.phpjest rodzajem punktu wejścia do twojego modułu. Jest to odpowiednik app/etc/modules/[Namespace]_[Module].xmlMagento 1.
Ale teraz jest częścią samego modułu.
umożliwia tworzenie modułów w app/codefolderze, a także w vendorfolderze.
Bez względu na to, gdzie go dodasz, ten plik zostanie pobrany przez Magento i twój moduł zostanie wzięty pod uwagę.

Marius
źródło
Jeśli dodasz, oznacza to, że mogę umieścić ten plik w dowolnym miejscu, np. W katalogu bloków, modeli lub kontrolerów lub w dowolnym innym katalogu? @Marius
Keyur Shah
I czy ma to jakiś powód, ponieważ config.php już tam jest @Marius
Keyur Shah
2
w config.phppojawiają się tylko nazwy modułów i ich status (włączony / wyłączony). Nie ma ścieżki do modułu. Jak powiedziałem w odpowiedzi, registration.phppozwala ci mieć moduły na zewnątrzapp/code
Marius
3
Zobacz to, aby uzyskać więcej informacji: maxyek.wordpress.com/2015/03/27/...
Marius
@Marius: Więc moduł nie powinien działać bez rejestracji. Prawda?
Sukeshini,
1

zauważyłem, że dwie rzeczy zostały zmienione z wersji Magento. 1.0.0-beta (październik) do Magento ver. 2.0.0-rc2
1. dodał nowy plik w folderze głównym modułu o nazwie register.php np: -app \ code \ Sugarcode \ Test \ register.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 został zmieniony poprzednio wymieniliśmy nazwę metody w tagu obserwatora w event.xml teraz metoda została usunięta juts należy wspomnieć tylko o instancji, która jest

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

aw folderze / ModuleName / Observer musisz utworzyć plik z funkcją

public function execute()

to jest

<?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
źródło