为什么在magento-2.0.0-RC中添加了registration.php?


Answers:


12

registration.php是模块的入口点。它app/etc/modules/[Namespace]_[Module].xml与Magento 1中的等效。
但是现在,它是模块本身的一部分。
它允许您在app/code文件vendor夹中以及文件夹中创建模块。
无论您在何处添加该文件,Magento都会拾取该文件,并且将考虑您的模块。


在哪里添加它意味着我可以将此文件放置在块,模型或控制器目录或任何其他目录等任何地方?@Marius
Keyur Shah

并有任何原因,因为config.php已经存在于@Marius
Keyur Shah

2
config.php只有名称会显示模块及其状态(启用/禁用)。没有该模块的路径。就像我在回答中说的那样,registration.php允许您在外部使用模块app/code
Marius


@Marius:因此,如果没有registration.php,该模块将无法正常工作?
Sukeshini

1

我注意到Magento ver改变了两件事。1.0.0-beta(十月)至Magento版本。2.0.0-rc2
1.在名为registration.php的模块的根文件夹中添加了新文件,例如:-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之前已更改,我们在event.xml的观察者标记中提及方法名称,现在方法已删除,您仅需提及实例

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

并在/ ModuleName / Observer文件夹中,您需要创建一个具有以下功能的文件:

public function execute()

那是

<?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;
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.