我想覆盖AbstractBlock类,我尝试使用我的自定义模块,但它无法正常工作
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">
<preference for="Magento\Framework\View\Element\AbstractBlock" type="YourCompany\YourModule\Framework\View\Element\AbstractBlock" />
</config>
AbstractBlock.php
<?php
namespace YourCompany\YourModule\Framework\View\Element;
abstract class AbstractBlock extends \Magento\Framework\View\Element\AbstractBlock {
/**
* Retrieve child block HTML
*
* @param string $alias
* @param boolean $useCache
* @return string
*/
public function getChildHtml($alias = '', $useCache = true)
{
die("here");
}
}
解决方法:
您无法替换层次结构中间的类.
意思是,用另一个抽象类交换现有的父(抽象)类.
也许你可以展示你是如何使用原始类的(我猜在构造函数中)并且这将有助于提供更好的答案.