我需要通过composer安装的SimpleXLS
软件包类,但是当我尝试对其进行测试时,我的SimpleXLSX
似乎是未定义的。
<?php
include './_inc/bootstrap.php';
require_once('./vendor/shuchkin/simplexls/src/SimpleXLS.php');
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
print_r( $xlsx->rows() );
} else {
echo SimpleXLSX::parseError();
}
答案 0 :(得分:1)
更改
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
收件人
if ( $xlsx = SimpleXLS::parse('book.xlsx') ) {
将SimpleXLSX
的所有引用更改为SimpleXLS
,因为根据this,该类称为SimpleXLS
,而不是SimpleXLSX
。
注意:如果您包含自动加载器,则Composer将处理自动加载。
答案 1 :(得分:1)
使用Composer时,通常不应该在包内包括特定文件,而应仅包括Composer生成的自动加载器:
require_once './vendor/autoload.php';
该文件仅需运行一次,因此可以在现有的_inc/bootstrap.php
文件中,您需要在其中向上一个目录,因此该行应为:
require_once '../vendor/autoload.php';
(请注意,require_once
是关键字,而不是函数,因此不需要括号,在复杂情况下加括号可能会引起混淆。)
正如Script47在一个单独的答案中指出的那样,您似乎还混淆了两个名称相似的软件包:
shuchkin/simplexls
定义了一个类SimpleXLS
,用于读取旧格式的.xls
二进制文件shuchkin/simplexlsx
定义了一个类SimpleXLSX
,用于读取更新的.xlsx
压缩XML文件