Php 通过WordPress插件中的Composer包括第三方库
好的,我在这方面花了很多时间,这显然超出了我的理解范围——我正在创建一个WordPress插件,我想包括PHPSReadSheet库。我按照说明使用Composer()安装库,并将示例代码放在插件的子文件中:Php 通过WordPress插件中的Composer包括第三方库,php,wordpress,scope,composer-php,phpspreadsheet,Php,Wordpress,Scope,Composer Php,Phpspreadsheet,好的,我在这方面花了很多时间,这显然超出了我的理解范围——我正在创建一个WordPress插件,我想包括PHPSReadSheet库。我按照说明使用Composer()安装库,并将示例代码放在插件的子文件中: require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadshe
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();
我现在可以访问子文件中的“电子表格”变量,但这显然并不理想
有人帮忙吗??谢谢 我不明白你为什么要将这些对齐移动到另一个文件中?我显然不能在我的WordPress插件的主文件中完成所有的电子表格处理-而且,电子表格处理需要在点击按钮时作为ajax调用来完成。为什么不使用这些对齐“使用…”在子文件中?因为我在尝试时收到了这个错误:Parse error:syntax error,意外的'use'(T_use)-显然'use'声明必须在任何函数之外的顶级作用域中使用-因此我将它们放在我的主WordPress插件文件中,在任何其他代码之前。@NicoHaase,是的,我已经确认include路径是正确的,并且autoload.php确实正在加载。