Как использовать несколько версий dompdf одновременно?

#php #dompdf

#php #dompdf

Вопрос:

В настоящее время я могу отображать документы в старой версии dompdf и в версии 6.0, если я выполняю их как отдельные скрипты. Я хотел бы иметь возможность отображать некоторые документы в старой версии, а некоторые — в новой версии одновременно. Я пытался использовать пространства имен, подобные этому, и мне потребовался этот файл:

 <?php
namespace domold {
    require_once('dompdf/dompdf_config.inc.php');
}
namespace domnew {
    require_once('dompdf6.0/dompdf_config.inc.php');
}
?>
 

Затем я пытаюсь создать экземпляр каждого соответствующего класса следующим образом

 $dompdf = new domoldDOMPDF();
//rest of code here

$dompdf = new domnewDOMPDF();
//rest of code here
 

и я получаю ошибки типа Требуется неудачное открытие ‘d:Apache2htdocsdompdfinclude/domolddompdf.cls.php ‘

Есть ли лучший способ сделать это? Мне нужно использовать обе версии, поэтому, пожалуйста, не говорите мне использовать одну версию. Я неправильно использую пространства имен?

Спасибо

Комментарии:

1. Он все еще находится на ранней стадии разработки, но на github есть версия dompdf с пространством имен: github.com/dompdf/dompdf/tree/develop

2. Кроме того, почему? Если вам действительно нужно это сделать, лучше всего создать внешний PHP-скрипт, который отрисовывает с использованием нужной вам версии. Таким образом, вы не столкнетесь с какими-либо конфликтами пространства имен / классов. Я делаю что-то подобное здесь: eclecticgeek.com/dompdf/debug.php

3. Здравствуйте, я ознакомлюсь с обоими из них. Что касается почему, это частично из-за лени. В настоящее время у меня есть сотни документов php / html, которые отображаются «на лету», и я создал их давным-давно, когда dompdf был довольно новым. Мне приходилось делать странные вещи, чтобы заставить формы отображаться именно так, как мне было нужно, и они не отображаются корректно в новой версии dompdf. Я хочу использовать новую версию dompdf для новых форм в будущем, поэтому я хотел бы отображать старые и новые вместе с различными версиями и медленно циклически удалять все старые формы.

4. Что касается внешнего php-скрипта, вы имеете в виду создать средство визуализации и вызвать его с помощью exec() или что-то в этом роде? Спасибо, приятель.

5. Я все прекрасно понимаю. Если он не сломался, верно? Я имел в виду специально вызвать using exec() , поскольку именно так я это и делаю. Я действительно не могу придумать никакого другого способа, если только вы не хотите попробовать находящуюся в разработке, непроверенную версию с пространством имен.