PHPSpreadsheet - как использовать инструмент автоматической миграции - PullRequest
0 голосов
/ 08 ноября 2018

Я давний читатель, но плохо знаком с вопросами. Пожалуйста, поправьте меня, если я как-то неправильно спросил.

Введение

Мы обновляем наши серверы с PHP 5.4 до PHP 7.2, и одна из библиотек, которая не полностью совместима с новой версией PHP, - это PHPExcel. Итак, мы также обновляем PHPSpreadsheet. Многие наши проекты используют PHPExcel по-разному, поэтому, если я смогу заставить работать инструмент Auto Migrate, это сэкономит мне огромное время, даже если он пропустит некоторые вещи.

Инструкции по использованию инструмента находятся здесь: https://phpspreadsheet.readthedocs.io/en/develop/topics/migration-from-PHPExcel/

И они просто говорят использовать следующую команду после установки через Composer (что я и сделал):

cd /project/to/migrate/src
/project/to/migrate/vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel

Задача

Я могу нормально выполнить миграцию, но он сканирует только файлы в каталоге vendor / phpoffice / phpspreadsheet. Он не сканирует файлы внутри моего проекта вообще.


Как получить скрипт миграции для сканирования файлов моих проектов, а не собственных файлов?


Местное окружение

  1. Windows 10
  2. Последний XAMPP
  3. PHP 7.2.11

Как я это запускаю

cd C:\path\to\project\that\uses\phpexcel
php vendor\phpoffice\phpspreadsheet\bin\migrate-from-phpexcel

Как я пытался решить до сих пор

  1. Выполнение точной команды на странице инструкций (в итоге выполняется две команды, вторая является недопустимой командой)
  2. Перемещение «migrate-from-phpexcel» в корневой каталог моего проекта и запуск его там
  3. Редактирование «migrate-from-phpexcel» после перемещения в корневой каталог проекта и указания на файл Bootstrap.php (запускается, но только внутри самой библиотеки. Та же проблема)

1 Ответ

0 голосов
/ 28 апреля 2019

Я не знаю, как и откуда вы выполнили 2-ю команду, но эта команда прошла через весь мой проект и сделала то, что похоже на соответствующие преобразования. Я запускал его из корня проекта, пока находился в моей IDE (PhpStorm, используя инструмент «Выполнить команду»). Я выполнил ту же команду, что и вы, например:

 php vendor\phpoffice\phpspreadsheet\bin\migrate-from-phpexcel  

После подтверждения «да» я увидел, что он пересекает каталог, изменяя различные файлы, но пропуская свои СОБСТВЕННЫЕ файлы. Когда я тестировал свой скрипт, я обнаружил предупреждение о «нечисловом значении» от одного из его модулей ( Coordinate.php в строке 312 и строке 313). Я провел некоторое исследование по предупреждению, но не смог найти ничего, чтобы ответить на него, кроме людей, обвиняющих PHP 7.1 ** (у меня работает 7.2. *). Поэтому я отключил предупреждение, и моя таблица была создана именно так, как я указал. Вот мое первое утверждение в моем скрипте 'create excel':

 error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); 

Единственное другое «ручное» изменение, которое мне пришлось сделать, - это изменение формата файла «createWriter» с «Excel2007» на «Xlsx» - в точности так, как это указано в документации. Более сложная электронная таблица может потребовать больше ручной работы, но, вероятно, не так сильно, как указано выше.

...