在WordPress插件中通过Composer包含第三方库

时间:2018-01-22 18:50:41

标签: php wordpress scope composer-php phpspreadsheet

好的,所以我花了很多时间在这上面,这显然超出了我的范围 - 我正在创建一个WordPress插件,我想要包含PHPSpreadsheet库。我按照说明使用Composer(https://phpspreadsheet.readthedocs.io/en/develop/#installation)安装了库,并将示例代码放在我的插件的子文件中:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

现在,我很快发现我不能在我的插件的这个特定子文件中放置带有'use'声明的两行 - 所以我将前三行移动到我的主插件文件中,事情很好 - 看起来我抓住'autoload.php'就好了,'use'语句没有丢失任何错误。

回到我的子文件中,我留下了剩下的代码,但我现在得到的只是错误说:

PHP Fatal error:  Class 'Spreadsheet' not found

这里有一些我不明白的名称空间和范围。目前这是我的主插件文件中的代码:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

global $spreadsheet;
$GLOBALS['spreadsheet'] = new Spreadsheet();

我现在能够访问子文件中的'Spreadsheet'变量,但这显然不太理想。

有人帮忙吗?谢谢!

0 个答案:

没有答案