Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过WordPress插件中的Composer包括第三方库_Php_Wordpress_Scope_Composer Php_Phpspreadsheet - Fatal编程技术网

Php 通过WordPress插件中的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

好的,我在这方面花了很多时间,这显然超出了我的理解范围——我正在创建一个WordPress插件,我想包括PHPSReadSheet库。我按照说明使用Composer()安装库,并将示例代码放在插件的子文件中:

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确实正在加载。