Tested on 2.1.6
and 2.1.8
works just fine. I injected the helper into a footer copyright plugin for proof of concept.
File Structure
app/code/Supravat/
└── Customer
├── Helper
│ └── Customer.php
├── Plugin
│ └── Magento
│ └── Theme
│ └── Block
│ └── Html
│ └── Footer.php
├── etc
│ ├── di.xml
│ └── module.xml
└── registration.php
registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Supravat_Customer',
__DIR__
);
module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Supravat_Customer" setup_version="0.0.1"/>
</config>
di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Theme\Block\Html\Footer">
<plugin name="supravat_customer_magento_theme_block_html_footer" type="Supravat\Customer\Plugin\Magento\Theme\Block\Html\Footer"/>
</type>
</config>
Customer.php
<?php
namespace Supravat\Customer\Helper;
class Customer extends \Magento\Framework\App\Helper\AbstractHelper
{
protected $customerRepositoryInterface;
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepositoryInterface
) {
parent::__construct($context);
$this->customerRepositoryInterface = $customerRepositoryInterface;
}
public function getCustomerById($customerId)
{
$customer = $this->customerRepositoryInterface->getById($customerId);
return var_export($customer->__toArray(), true);
}
}
Footer.php
<?php
namespace Supravat\Customer\Plugin\Magento\Theme\Block\Html;
use Supravat\Customer\Helper\Customer as Helper;
class Footer
{
protected $helper;
public function __construct(Helper $helper)
{
$this->helper = $helper;
}
public function afterGetCopyright(
\Magento\Theme\Block\Html\Footer $subject,
$result
) {
return $this->helper->getCustomerById(1);
}
}
Once all files are in place:
./bin/magento --clear-static-content module:enable Supravat_Customer
./bin/magento setup:upgrade
./bin/magento setup:di:compile
Refresh the home page and you should see the customer's information in the footer.
This is obviously just a proof of concept, there isn't any good reason why you'd want the customer's information dumped in the footer copyright, but it shows you that it works out of the box.
I had this exact same error when creating a custom module. Not sure if this will solve it for your case, but maybe it will help to illuminate what's going on.
In my custom layout xml, I had a uiComponent that was not yet defined.
File:
MyCompany/MyModule/view/adminhtml/layout/mycompany_mymodule_index_index.xml
<uiComponent name="my_custom_form" /> <!-- my_custom_form.xml file does not exist -->
Defining this UI component (or removing that uiComponent node in my layout xml) solved the problem for me.
Best Answer
Just check if you have "CSS Settings" -> "Merge CSS Files" set to No, and then try switching to Client side
Use this command to set css minification to NO
Thanks for this @s-adamson answer it saved many times.