最近magento-2.0.0-RC
启动,并将它们添加registration.php
到每个模块的根文件夹中吗?所以我只想知道有什么原因吗?
有人可以照亮吗?
最近magento-2.0.0-RC
启动,并将它们添加registration.php
到每个模块的根文件夹中吗?所以我只想知道有什么原因吗?
有人可以照亮吗?
Answers:
registration.php
是模块的入口点。它app/etc/modules/[Namespace]_[Module].xml
与Magento 1中的等效。
但是现在,它是模块本身的一部分。
它允许您在app/code
文件vendor
夹中以及文件夹中创建模块。
无论您在何处添加该文件,Magento都会拾取该文件,并且将考虑您的模块。
config.php
只有名称会显示模块及其状态(启用/禁用)。没有该模块的路径。就像我在回答中说的那样,registration.php
允许您在外部使用模块app/code
我注意到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;
}
}