Récemment a magento-2.0.0-RC
été lancé et ils ont ajouté registration.php
dans chaque dossier racine du module? Donc, je veux juste savoir s'il y a une raison à cela?
Quelqu'un peut-il éclairer cela?
Récemment a magento-2.0.0-RC
été lancé et ils ont ajouté registration.php
dans 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:
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
Magento 1.
Mais maintenant, il 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 considération.
config.php
seulement 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.php
vous permet d'avoir des modules à l'extérieurapp/code
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;
}
}