Composer — класс автозагрузки для конкретной версии PHP

Мы фактически переносим наш PHP-проект с PHP 5.3 на 7.2.

Я недавно перенес много библиотек в Composer.

У меня проблема с заменой PHPExcel с PhpSpreadSheet который не поддерживает PHP 5.3.

я держу 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 не загружал автозагрузчик? PhpSpreadSheet под PHP 5.3?

0

Решение

Есть ли решение, чтобы Composer не загружал автозагрузчик? PhpSpreadSheet под PHP 5.3?

Автозагрузчик Composer не будет загружать какой-либо класс, если вы его не запрашиваете. Так что самый простой способ сказать Composer не загружать указанный класс, это не использовать его. 🙂

Однако переход с PHP 5.3 на 7.2 — это большая задача, попытка сделать ваше приложение совместимым с обеими этими версиями может сделать его действительно трудным. Я предлагаю относиться к этому как к двум отдельным версиям, разработанным в разных ветках, для которых требуется разная версия PHP. Должно быть проще иметь две строки, в которых нужно заботиться только о PHP 5.3, а вторую — только о PHP 7.2, чем взламывать одну строку, чтобы быть совместимым как с PHP 5.3, так и с 7.2. PHP 5.3 был выпущен в 2009 году — он примерно на 7 лет старше, чем PHP 7.2, и многое изменилось за это время.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]