【发布时间】: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