Відповіді:
Я зіткнувся з цією проблемою і поставив точки перерви на кожен екземпляр "Жодних жетонів не було", які я міг знайти, використовуючи:
grep -lr 'No tokens were provided' vendor/
який повернувся:
vendor/zendframework/zend-code/src/Scanner/ConstantScanner.php
vendor/zendframework/zend-code/src/Scanner/TokenArrayScanner.php
vendor/zendframework/zend-code/src/Scanner/MethodScanner.php
vendor/zendframework/zend-code/src/Scanner/PropertyScanner.php
vendor/zendframework/zend-code/src/Scanner/ClassScanner.php
Мій виняток був кинутий у TokenArrayScanner.php
файл. Значення екземпляра "tokens" задається в конструкторі, тому я поставив там точку перерви і знову запустив процес. На жаль, цей конструктор багато разів викликається на численних файлах, а дані для файлу, що передається токенізованим, не включаються до виклику конструкції. Я зміг визначити, що "жетони" - це лише рядки файлу, який перевіряється. На основі допису CarComp я використовував це, щоб знайти файл, що порушує:
find . -type f -name '*.php' -empty
Це виявило декілька файлів, які проживали під шляхами, що містили "dev / тести", які виключаються із сканування, та один файл від стороннього розробника. видалення цього файлу вирішило проблему, і команда компіляції завершилася лише скаргами, а не винятками.
Тут, якщо ви хочете знати, ЯК знайти ці порожні файли, просто запустіть цю команду (припускаючи, що у вас є Linux та доступ до оболонки) у вашому кореневому каталозі magento або будь-якому іншому каталозі, у якому ви можете працювати, у якому можуть бути порожні файли. .
find -type f -empty
Здається, у вас порожній файл, який аналізується \ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScanner , який використовує метод PHP token_get_all . Виняток видається, якщо метод не повертає жодного значення, що є випадком у порожньому файлі.
Порожні файли також провокують, що жодних жетонів не було видано, тому слід встановити перевірку на ClassesScanner, щоб оцінити, чи використовується введений каталог або будь-який файл класу є дійсним файлом і чи вміст його не порожній. Потрібно додати належний вміст у створені файли АБО його не слід визначати / створювати.