Класс 'PhpOffice \ PhpWord \ TemplateProcessor' не найден - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть PHPWORD в каталоге /иблиотеки / PhpOffice / PhpWord /.Я пытаюсь использовать его в совершенно другой части приложения (веб-сайт Joomla), как это:

require_once JPATH_LIBRARIES.'/vendor/autoload.php'; //composer
require_once JPATH_LIBRARIES.'/PhpOffice/PhpWord/PhpWord.php';
$Wzor = new \PhpOffice\PhpWord\TemplateProcessor(JPATH_ROOT.'/images/powiadomienia/SzablonPowiadomienia.docx');

Но я получаю ошибку:

Class 'PhpOffice \ PhpWord \ TemplateProcessor'не найдено

Я пробовал много вариантов и путей, я пытался читать онлайн справку, но всегда с тем же результатом.Могу ли я попросить некоторую помощь и руководство?Как я могу включить такой класс в мой скрипт?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Из того, что я обнаружил, была использована платформа - Joomla. У него есть собственный метод для обнаружения классов. Мне пришлось поместить файлы в папку / library / src, а затем поместить этот код для использования этого класса:

JLoader::registerNamespace('PhpOffice', JPATH_LIBRARIES . '/src');
$objPHPWord = new \PhpOffice\PhpWord\PhpWord();
0 голосов
/ 09 апреля 2019

Используйте папку /vendor, а не "библиотеки" (, см. Почему ниже ).

В вашем проекте root папка:

composer require phpoffice/phpword

Тогда:

require_once JPATH_ROOT.'/vendor/autoload.php';
$Wzor = new \PhpOffice\PhpWord\TemplateProcessor(JPATH_ROOT.'/images/powiadomienia/SzablonPowiadomienia.docx');

ПРЕДУПРЕЖДЕНИЕ:

НИКОГДА не запускайте «Требуется композитор» внутри папки «/ library», так как УДАЛИТ ядро ​​Joomla на более поздних версиях.Это происходит потому, что люди использовали эту папку, и чтобы подчеркнуть, что она не должна использоваться, основная команда Joomla удалила из нее файл composer.json.Из-за этого ядро ​​Joomla стирается при попытке добавить библиотеки в эту папку.


Почему бы не использовать "/ library" ?

From https://docs.joomla.org/J3.x:Using_Composer_with_Joomla:

Можете ли вы установить дополнительные библиотеки через Composer?

В данный момент в Joomla нет!3.4.В долгосрочной перспективе целью CMS является возможность загрузки дополнительных пакетов.Чтобы подчеркнуть это, мы еще не будем выпускать файл composer.json в основной Joomla!скачать.

...