我在/ libraries / PhpOffice / PhpWord /目录中有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');
但是我得到了错误:
未找到“ PhpOffice \ PhpWord \ TemplateProcessor”类
我尝试了许多变体和路径,尝试阅读在线帮助,但总是得到相同的结果。我可以寻求一些帮助和指导吗?如何在我的脚本中包含此类?
答案 0 :(得分:0)
使用/vendor
文件夹,而不要使用“库”(请参阅下文)。
在项目的 root 文件夹中:
composer require phpoffice/phpword
然后:
require_once JPATH_ROOT.'/vendor/autoload.php';
$Wzor = new \PhpOffice\PhpWord\TemplateProcessor(JPATH_ROOT.'/images/powiadomienia/SzablonPowiadomienia.docx');
警告:
从不在“ / libraries”文件夹中运行“ composer require”,因为它将删除最新版本的Joomla核心。发生这种情况是因为人们正在使用此文件夹,并强调不应使用该文件夹,Joomla核心团队从其中删除了composer.json文件。因此,尝试在此文件夹上添加库时,Joomla核心被清除了。
为什么不使用“ /库” ?
来自https://docs.joomla.org/J3.x:Using_Composer_with_Joomla:
您可以通过Composer安装任何其他库吗?
目前不在Joomla中! 3.4。从长远来看,这是CMS的 目的是您可以下载其他软件包。为了强调这一点,我们将 尚未在主Joomla中发布composer.json文件! 下载。
答案 1 :(得分:0)
根据我发现的问题,使用了框架-Joomla。它有自己的发现类的方法。我必须将文件放入/ libraries / src文件夹,然后将以下代码放入此类:
JLoader::registerNamespace('PhpOffice', JPATH_LIBRARIES . '/src');
$objPHPWord = new \PhpOffice\PhpWord\PhpWord();