Pourquoi registration.php ajouté dans magento-2.0.0-RC?


15

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

Quelqu'un peut-il éclairer cela?

Réponses:


12

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


L'endroit où vous l'ajoutez signifie que je peux placer ce fichier n'importe où, comme le répertoire de bloc, de modèle ou de contrôleur ou tout autre répertoire? @Marius
Keyur Shah

Et y a-t-il une raison à cela parce que config.php est déjà là @Marius
Keyur Shah

2
en config.phpseulement les noms des modules apparaissent et leur état (activé / désactivé). Il n'y a pas de chemin vers le module. Comme je l'ai dit dans la réponse, registration.phpvous permet d'avoir des modules à l'extérieurapp/code
Marius

3
Voir ceci pour plus de détails: maxyek.wordpress.com/2015/03/27/…
Marius

@Marius: Le module ne devrait donc pas fonctionner sans registration.php non?
Sukeshini

1

j'ai remarqué que deux choses ont été modifiées depuis Magento ver. 1.0.0-beta (octobre) vers Magento ver. 2.0.0-rc2
1. ajout d'un nouveau fichier dans le dossier racine du module appelé registration.php ex: -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 a été modifié précédemment, nous mentionnons le nom de la méthode dans la balise observer dans event.xml maintenant la méthode a été supprimée mais vous devez mentionner uniquement l'instance qui est

<?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;
    }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.