@RJs45

Что делать, если нужно изменить стороннюю библиотеку в Laravel?

Я даже не знаю, правильно сформировал вопрос, собственно, проблема:
Используем в проекте на Laraval пакет digitick/sepa-xml для генерации SEPA XML.
Проблема в том, что при генерации он включает в заголовок информацию, которая в некоторых банках избыточна и сгенерированый XML не проходит валидацию.
function __construct($painFormat)
    {
        $this->painFormat = $painFormat;
        $this->doc = new \DOMDocument('1.0', 'UTF-8');
        $this->doc->formatOutput = true;
        $this->root = $this->doc->createElement('Document');
        $this->root->setAttribute('xmlns', sprintf("urn:iso:std:iso:20022:tech:xsd:%s", $painFormat));
        $this->root->setAttribute('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance");
        $this->root->setAttribute('xsi:schemaLocation', "urn:iso:std:iso:20022:tech:xsd:$painFormat $painFormat.xsd");
        $this->doc->appendChild($this->root);
    }

Нужно все точно также, только без
$this->root->setAttribute('xsi:schemaLocation', "urn:iso:std:iso:20022:tech:xsd:$painFormat $painFormat.xsd");


Как в таких случаях поступать правильно? Как переопределить поведение стороннего пакета? Править в /vendor - это же очень очень плохо.
  • Вопрос задан
  • 2573 просмотра
Пригласить эксперта
Ответы на вопрос 2
windoctor
@windoctor
Форкануть?
Ответ написан
DanteXXI
@DanteXXI
Web-Developer
грохнуть ненужный header после формирования, но до отправки ответа. Если не удается - контрибьютить библиотеку)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы