Magento 2.3.1 ghi đè view.xsd Sử dụng Plugin Không hoạt động trước 2.3.1, nó hoạt động


7

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


Bạn có thể đăng những gì bạn đã thử không, và cũng thử mã mới tôi đã cập nhật getSchema @Pratik
Prathap Gunasekaran

@PrathapGunasekaran Chỉ cần cố gắng ghi đè SchemaLocator Sử dụng tùy chọn và plugin trong cả hai trường hợp nó không hoạt động trong 2.3.1
Pratik

Đó có phải là lớp ghi đè hoạt động? Thêm một bản ghi vào đó và xác minh trước khi đi xa hơn
Prathap Gunasekaran

@PrathapGunasekaran Tôi có nhiều kinh nghiệm về magento nên tôi thử mọi thứ trước khi đăng ở đây bao gồm cả nhật ký.
Pratik

bạn phải tìm thấy nó ở nơi nó thất bại và nó đã sai ở đâu. Có bất kỳ lỗi nào trong khi biên dịch hoặc những gì đưa ra sau khi được áp dụng viết lại hoặc đánh chặn
Prathap Gunasekaran

Câu trả lời:


2

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


1
Xin chào @Prathap Bạn đã kiểm tra liên kết tôi đăng trong Câu hỏi chưa? Bạn đăng cùng một câu trả lời mà tôi thêm vào liên kết và nó không hoạt động trong 2.3.1
Pratik

Xin chào @Pratik Hãy thử xem và tôi không nghĩ bất kỳ câu trả lời nào trong số đó sử dụng ưu tiên và điều này hoạt động tốt trong M2.3. Tôi đã thử nghiệm.
Prathap Gunasekaran

Bạn đã kiểm tra trong 2.3.0 hoặc 2.3.1 chưa?
Pratik

Nó có hoạt động hay không ?? không khác nhiều từ 2.3 đến 2.3.1 liên quan đến di
Prathap Gunasekaran

2
nó không hoạt động trong 2.3.1.
Pratik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.