找不到类 'PhpOffice\PhpWord\TemplateProcessor'



我在/libraries/PhpOffice/PhpWord/目录中有 PHPWORD。我正在尝试在应用程序的完全其他部分(Joomla网站)中使用它,如下所示:

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

但是我得到错误:

找不到类 'PhpOffice\PhpWord\TemplateProcessor'

我尝试了许多变体和路径,我尝试阅读在线帮助,但总是得到相同的结果。我可以寻求一些帮助和指导吗?如何将此类包含在脚本中?

使用/vendor文件夹,而不是"库"(请参阅下面的原因)。

在项目文件夹中:

composer require phpoffice/phpword

然后:

require_once JPATH_ROOT.'/vendor/autoload.php';
$Wzor = new PhpOfficePhpWordTemplateProcessor(JPATH_ROOT.'/images/powiadomienia/SzablonPowiadomienia.docx');

警告:

切勿在"/libraries"文件夹中运行"作曲家要求",因为它会删除最新版本上的Joomla核心。发生这种情况是因为人们正在使用这个文件夹,为了强调不应该使用它,Joomla核心团队从中删除了composer.json文件。因此,当尝试在此文件夹上添加库时,Joomla 核心会被清除。


为什么不使用"/libraries">

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

您可以通过作曲家安装任何额外的库吗?

目前不在乔姆拉!3.4. 从长远来看,它是CMS的 目标是您可以下载额外的软件包。为了强调这一点,我们将 尚未在主Joomla中发布composer.json文件! 下载。

从我发现的问题使用了框架 - Joomla。它有自己的方法来发现类。我必须将文件放入/libraries/src 文件夹中,然后将以下代码用于此类:

JLoader::registerNamespace('PhpOffice', JPATH_LIBRARIES . '/src');
$objPHPWord = new PhpOfficePhpWordPhpWord();

你需要用作曲家安装 phpoffice/phpword

composer require phpoffice/phpword

相关内容

  • 没有找到相关文章

最新更新