实际上,我们正在将PHP项目从PHP 5.3迁移到7.2。
我最近移植了很多库到Composer。
我有一个问题,用不支持PHP5.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 PhpOffice\PhpSpreadsheet\Spreadsheet();
} else {
require_once 'lib/PHPExcel/Classes/PHPExcel.php';
$workbook = new PHPExcel();
}
目前,我们的代码必须在PHP 5.3和7.2下运行。
有没有办法告诉Composer自动加载器在PHP5.3下不自动加载PhpSpreadSheet
?
发布于 2018-08-23 04:04:38
有没有办法在PHP5.3下告诉Composer自动加载器不要自动加载
PhpSpreadSheet
?
只要你没有被请求,Composer的自动加载器就不会加载任何类。所以告诉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年,在这个时候,很多东西都发生了变化。
https://stackoverflow.com/questions/51742956
复制相似问题