作曲家 - 特定PHP版本上的自动加载类



我们实际上是将PHP项目从PHP 5.3迁移到7.2。

我最近将许多库迁移到 Composer。

我有一个问题,用不支持 PHP 5.3 的PhpSpreadSheet替换PHPExcel

我暂时将PHPExcel保存在一个单独的文件夹中,我使用PHP_VERSION_ID来使用其中一个。

// early in the file to use another dependency
require_once 'vendor/autoload.php';
.
.
.
if (PHP_VERSION_ID > 50400) {
$workbook = new PhpOfficePhpSpreadsheetSpreadsheet();
} else {
require_once 'lib/PHPExcel/Classes/PHPExcel.php';
$workbook = new PHPExcel();
}

目前,我们的代码必须在 PHP 5.3 和 7.2 下继续运行。

有没有解决方案可以告诉作曲家自动加载器不要在 PHP 5.3 下自动加载PhpSpreadSheet

有没有解决方案告诉作曲家自动加载器不要在 PHP 5.3 下自动加载PhpSpreadSheet

作曲家的自动加载器不会加载任何类,只要你不请求它。因此,告诉 Composer 不要加载指定类的最简单选择就是不使用它。:)

但是,从 PHP 5.3 迁移到 7.2 是一项艰巨的任务,试图使您的应用程序与这两个版本兼容可能会使其非常困难。我建议将其视为在不同分支上开发的两个独立版本,需要不同的 PHP 版本。拥有两行,其中一行只关心 PHP 5.3,第二行只关心 PHP 7.2,应该比破解一行与 PHP 5.3 和 7.2 兼容更容易。PHP 5.3 发布于 2009 年 - 它比 PHP 7.2 早 ~7 年,此时很多东西都发生了变化。

最新更新