PHPExcel — Trying to access array offset on value of type int

Всем привет!
Недавно после обновления системы до версии PHP 7.4 вместе со всеми вытекающими случилась интересная проблема — штука, которая собирала отчёты начала кидаться в меня ошибками в виде Trying to access array offset on value of type int.
Как ни странно, сама проблема кроется именно в библиотеке PHPExcel, которая по неизвестным причинам не обновляется. Решается довольно легко — посредством редактирования файла DefaultValueBinder.php в самой библиотеке. Но забавная история — далеко не все могут просто вот так редактировать библиотеку, например, если она тянется при помощи composer.

Недолго думая сделал форк этой библиотеки. Предоставляю вам два решения проблемы:

С помощью замены пакета в composer.json

Открываем файл composer.json и во-первых добавляем туда репозиторий. Так же, если вдруг вам нужен, добавляем туда и ExcelBundle.

    "repositories": [
        {
            "url": "https://github.com/ruecoder/ExcelBundle.git",
            "type": "git"
        },
        {
            "url": "https://github.com/ruecoder/PHPExcel.git",
            "type": "git"
        }
    ],

Затем закидываем в тот же composer.json в блок require сами библиотеки

    "require": {
        "ruecoder/phpexcel": "dev-master",
        "ruecoder/excelbundle": "dev-master"
    }

И выполняем composer update

С помощью редактирования библиотеки PHPExcel

Всё просто. Идём по пути и открываем файл vendor/PHPExcel/Classes/PHPExcel/Cell/DefaultValueBinder.php
Нам нужна строка 82 которая выглядит вот так:

} elseif ($pValue[0] === '=' && strlen($pValue) > 1) {

заменяем её на такую

} elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) {

Всё, готово, всё снова работает как и раньше. 🙂