Pourquoi Registration.php a-t-il été ajouté dans magento-2.0.0-RC ?
-
13-12-2019 - |
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 ?
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;
}
}