Warum registration.php in magento-2.0.0-RC hinzugefügt?


15

Kürzlich magento-2.0.0-RCwurde gestartet und sie registration.phpin jedem Modul-Stammordner hinzugefügt ? Ich möchte nur wissen, ob es dafür einen Grund gibt.

Kann jemand dies beleuchten?

Antworten:


12

registration.phpist eine Art Einstiegspunkt Ihres Moduls. Es ist das Äquivalent app/etc/modules/[Namespace]_[Module].xmlvon Magento 1.
Aber jetzt ist es Teil des Moduls.
Sie können Module sowohl im Ordner als auch app/codeim vendorOrdner erstellen .
Egal wo Sie es hinzufügen, diese Datei wird von Magento abgeholt und Ihr Modul wird berücksichtigt.


Wenn Sie es hinzufügen, bedeutet dies, dass ich diese Datei an einem beliebigen Ort wie einem Block-, Modell- oder Controller-Verzeichnis oder einem anderen Verzeichnis ablegen kann? @Marius
Keyur Shah

Und gibt es einen Grund dafür, weil config.php bereits da ist? @Marius
Keyur Shah

2
im config.php nur die Modulnamen und deren Status angezeigt (aktiviert / deaktiviert). Es gibt keinen Pfad zum Modul. Wie ich in der Antwort sagte, registration.phpkönnen Sie Module außerhalb habenapp/code
Marius

3
Weitere Informationen finden Sie hier: maxyek.wordpress.com/2015/03/27/…
Marius

@Marius: Also sollte das Modul nicht ohne registration.php funktionieren oder?
Sukeshini

1

Mir ist aufgefallen, dass sich zwei Dinge von Magento ver geändert haben. 1.0.0-beta (Okt) zu Magento ver. 2.0.0-rc2
1. Neue Datei mit dem Namen registration.php im Stammverzeichnis des Moduls hinzugefügt. Beispiel: -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 wurde geändert, zuvor wurde der Methodenname im Observer-Tag in event.xml erwähnt. Jetzt wurde die Methode entfernt. Sie müssen nur die Instanz angeben, die ist

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

und im Ordner / ModuleName / Observer müssen Sie eine Datei mit Funktion erstellen

public function execute()

das ist

<?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;
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.