Нещодавно magento-2.0.0-RC
був запущений, і вони додані registration.php
у кожну кореневу папку модуля? Тож я просто хочу знати, чи є причина для цього?
Хтось може поставити світло на це?
Нещодавно magento-2.0.0-RC
був запущений, і вони додані registration.php
у кожну кореневу папку модуля? Тож я просто хочу знати, чи є причина для цього?
Хтось може поставити світло на це?
Відповіді:
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-бета (жовтень) до Magento ver. 2.0.0-rc2
1. додано новий файл у кореневу папку модуля під назвою 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 було змінено попереднє, ми згадуємо ім'я методу в тезі спостерігача у 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;
}
}