好的,所以我花了很多时间在这上面,这显然超出了我的范围 - 我正在创建一个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'变量,但这显然不太理想。
有人帮忙吗?谢谢!