Tôi đang cố gắng ghi đè view.xsd bằng Plugin và nó hoạt động trên magento 2.1.x và 2.2.x nhưng không hoạt động trong 2.3.1.
Tôi thêm mã tương tự để mô tả ở đây.
Mở rộng phức loại có tên "imageType" bằng loại hình ảnh tùy chỉnh
Tôi đang cố gắng ghi đè view.xsd bằng Plugin và nó hoạt động trên magento 2.1.x và 2.2.x nhưng không hoạt động trong 2.3.1.
Tôi thêm mã tương tự để mô tả ở đây.
Mở rộng phức loại có tên "imageType" bằng loại hình ảnh tùy chỉnh
Câu trả lời:
Hãy thử điều này, bạn có thể mở rộng sử dụng ưu tiên
Thêm di.xml vào thư mục bên dưới
ứng dụng / mã / Nhà cung cấp / ModuleName / etc / di.xml
sau đó thêm mã dưới đây vào nó
<?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\Config\SchemaLocator" type="Vendor\ModuleName\Config\SchemaLocator" />
</config>
sau đó thêm SchemaLocator.php trong đường dẫn bên dưới
ứng dụng / mã / Nhà cung cấp / ModuleName / Config / SchemaLocator.php
sau đó thêm mã dưới đây vào nó
<?php
namespace Vendor\ModuleName\Config;
use Magento\Framework\Module\Dir;
class SchemaLocator extends \Magento\Framework\Config\SchemaLocator implements \Magento\Framework\Config\SchemaLocatorInterface
{
protected $schema = null;
/**
* @param \Magento\Framework\Module\Dir\Reader $moduleReader
*/
public function getSchema()
{
$result = sprintf(realpath(__DIR__ . '/../etc/view.xsd'));
return $result;
}
/**
* {@inheritdoc}
*/
public function getPerFileSchema()
{
return $this->_schema;
}
}
đoạn mã trên sẽ thay đổi đường dẫn của view.xsd sang mô đun tùy chỉnh của bạn từ lõi.
Cuối cùng, thêm view.xsd trong đường dẫn bên dưới
ứng dụng / mã / Nhà cung cấp / ModuleName / etc / view.xsd
sau đó bạn có thể thêm bạn thay đổi ở đó.
LƯU Ý: Đây là ví dụ hoạt động trong M2.3 và trong phiên bản trước được sử dụng plugin thay vì tùy chọn