【问题标题】:Class 'PhpOffice\PhpSpreadsheet\Spreadsheet' not found找不到类“PhpOffice\PhpSpreadsheet\Spreadsheet”
【发布时间】:2018-06-15 20:40:12
【问题描述】:

我使用 Composer 安装 phpoffice/phpspreadsheet。它安装在一个基本的“供应商”目录中。但是,我需要在子域目录中使用它。 我手动将其移至不同的“供应商”目录。

再深入一点 ../public_html/subdomains/newsite/vendor/

我从一个文件调用代码更深一点 ../backend/web/xlsx.php

我的实际代码如下:

<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

require '../../vendor/autoload.php';
$spreadsheet = new Spreadsheet();
?>

仅使用这个简单的设置,我就会收到以下致命错误:

Class 'PhpOffice\PhpSpreadsheet\Spreadsheet' not found

我还在学习一些关于命名空间和作曲家的知识,当我手动移动文件时我可能遗漏了一些东西。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 移动文件肯定会破坏作曲家的观点,您现在将无法使用它来更新任何依赖项。在作曲家 autoload.php 中将引用文件位置,因此如果您删除了文件,它将无法找到它们。要么正确使用作曲家,要么单独加载你的依赖项。
  • 这是我的怀疑。感谢您澄清这一点。需要弄清楚如何更好地使用作曲家。
  • 再次感谢格雷姆。我所要做的就是 CD 进入子域目录并在那里运行 Composer,瞧,它现在可以工作了。

标签: phpspreadsheet


【解决方案1】:

我知道您已经很久没有问过了,但它可能对其他人有所帮助。

在这种情况下,当您修改供应商的结构时,自动加载也会更新。

如果您从本地获取文件夹并将其投入生产,您还应该发送更新后的自动加载。

【讨论】:

    【解决方案2】:

    安装这个包: 作曲家需要 phpoffice/phpspreadsheet

    【讨论】:

    • 我以这种方式安装它,使用 PHP 7.3,得到了与 OP 相同的错误。
    猜你喜欢
    • 2022-01-11
    • 2020-02-24
    • 2019-07-30
    • 2019-08-30
    • 1970-01-01
    • 2018-06-22
    • 2017-10-29
    • 2021-11-25
    相关资源
    最近更新 更多