Risposte:
Ho riscontrato questo problema e ho inserito punti di interruzione in ciascuna istanza di "Nessun token fornito" che ho trovato usando:
grep -lr 'No tokens were provided' vendor/
che ha restituito:
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
La mia eccezione è stata generata nel TokenArrayScanner.php
file. Il valore dell'istanza "token" è impostato nel costruttore, quindi ho inserito un punto di interruzione e ho riavviato il processo. Sfortunatamente, questo costruttore viene chiamato più volte su numerosi file e i dati per il file da tokenizzare non sono inclusi nella chiamata del costrutto. Sono stato in grado di determinare che i "token" sono solo righe del file che viene ispezionato. Sulla base del post di CarComp, l'ho usato per trovare il file offensivo:
find . -type f -name '*.php' -empty
Ciò ha rivelato un numero di file che vivevano in percorsi che contenevano "dev / test", che sono esclusi dalla scansione, e un singolo file da uno sviluppatore di terze parti. la rimozione di questo file ha risolto il problema e il comando di compilazione è stato completato con solo lamentele e non eccezioni.
Sembra che tu abbia un file vuoto che viene analizzato da \ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScanner , che usa il metodo PHP token_get_all . Viene generata l'eccezione, se il metodo non restituisce alcun valore, come nel caso di un file vuoto.
I file vuoti provocano anche il problema Nessun token fornito, quindi è necessario verificare su ClassesScanner per valutare se la voce di directory utilizzata o qualsiasi file di classe è un file valido e se il suo contenuto non è vuoto. Devi aggiungere il contenuto appropriato all'interno dei file creati O non dovrebbe essere definito / creato.