Mengapa registrasi.php ditambahkan dalam magento-2.0.0-RC?

15

Baru magento-2.0.0-RC- baru ini diluncurkan dan mereka ditambahkan registration.phpdi setiap folder root modul? Jadi saya hanya ingin tahu apakah ada alasan untuk itu?

Adakah yang bisa menjelaskan hal ini?

Keyur Shah
sumber

Jawaban:

12

registration.phpadalah semacam titik masuk modul Anda. Ini setara dengan app/etc/modules/[Namespace]_[Module].xmldari Magento 1.
Tapi sekarang, adalah bagian dari modul itu sendiri.
memungkinkan Anda untuk membuat modul di app/codefolder dan di vendorfolder juga.
Di mana pun Anda menambahkannya, file ini akan diambil oleh Magento dan modul Anda akan dipertimbangkan.

Marius
sumber
Di mana Anda menambahkan itu berarti saya dapat menempatkan file ini di mana saja seperti blok, model atau direktori controller atau direktori lainnya? @Marius
Shah
Dan apakah ada alasan untuk itu karena config.php sudah ada di @Marius
Shah
2
di config.phphanya modul nama muncul dan status mereka (diaktifkan / dinonaktifkan). Tidak ada jalur ke modul. Seperti yang saya katakan dalam jawaban, registration.phpmemungkinkan Anda untuk memiliki modul di luarapp/code
Marius
3
Lihat ini untuk lebih jelasnya: maxyek.wordpress.com/2015/03/27/…
Marius
@Marius: Jadi modul tidak akan berfungsi tanpa registrasi.php bukan?
Sukeshini
1

Saya melihat dua hal telah diubah dari Magento ver. 1.0.0-beta (Oktober) ke Magento ver. 2.0.0-rc2
1. menambahkan file baru di folder root dari modul bernama registration.php mis: -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 telah diubah sebelumnya kami menyebutkan nama metode di tag pengamat di event.xml sekarang metode telah dihapus, Anda perlu menyebutkan hanya instance yang

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

dan di folder / ModuleName / Observer Anda perlu membuat file dengan fungsi

public function execute()

itu adalah

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