Question

Récemment magento-2.0.0-RC a été lancé et ils ont ajouté registration.php dans chaque dossier racine du module ?Donc je veux juste savoir, y a-t-il une raison à cela ?

Quelqu'un peut-il faire la lumière là-dessus ?

Était-ce utile?

La solution

registration.php est en quelque sorte le point d'entrée de votre module.C'est l'équivalent de app/etc/modules/[Namespace]_[Module].xml depuis Magento 1.
Mais maintenant, cela fait partie du module lui-même.
il vous permet de créer des modules dans le app/code dossier et dans le vendor dossier également.
Peu importe où vous l'ajoutez, ce fichier sera récupéré par Magento et votre module sera pris en compte.

Autres conseils

J'ai remarqué que deux choses avaient été modifiées par rapport à la version Magento.1.0.0-bêta (octobre) vers Magento ver.2.0.0-rc2
1.Ajout d'un nouveau fichier dans le dossier racine du module appelé Enregistrement.php ex: -app code sucrecode test Enregistrement.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 a été modifié auparavant, nous sommes mentionnés le nom de la méthode dans l'observateur tag dans event.xml maintenant la méthode a été supprimée

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

et dans le dossier /ModuleName/Observer, vous devez créer un fichier avec la fonction

public function execute()

c'est

<?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;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top