回答:
私はこの問題を経験し、使用できる「トークンが提供されていません」の各インスタンスにブレークポイントを設定しました:
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 / tests」を含むパスの下に存在する多数のファイルがスキャンから除外され、サードパーティの開発者からの単一のファイルが見つかりました。このファイルを削除することで問題は解決し、コンパイルコマンドは例外ではなく苦情のみで完了しました。
PHPのtoken_get_allメソッドを使用する\ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScannerによって解析される空のファイルがあるようです。メソッドが値を返さない場合、例外がスローされます。これは空のファイルの場合です。