Yanıtlar:
Bu sorunu yaşadım ve her bir 'Jeton sağlanmadı' için kesme noktaları koydum:
grep -lr 'No tokens were provided' vendor/
döndüren:
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
Benim istisnam TokenArrayScanner.php
dosyaya atıldı . "Belirteçler" örnek değeri yapıcıda ayarlanır, bu yüzden orada bir kırılma noktası koymak ve işlemi yeniden başlattı. Ne yazık ki, bu kurucu çok sayıda dosyada birçok kez çağrılır ve tokenleştirilen dosyaya ilişkin veriler yapı çağrısına dahil edilmez. "Belirteçlerin" incelenmekte olan dosyanın satırları olduğunu belirleyebildim. CarComp'un gönderisine dayanarak, rahatsız edici dosyayı bulmak için bunu kullandım:
find . -type f -name '*.php' -empty
Bu, "dev / test" içeren yollar altında yaşayan, tarama dışında bırakılan ve üçüncü taraf geliştiriciden tek bir dosya çıktı. Bu dosyanın kaldırılması sorunu çözdü ve derleme komutu istisnalar dışında yalnızca şikayetlerle tamamlandı.
PHP token_get_all yöntemini kullanan \ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScanner tarafından ayrıştırılan boş bir dosyanız var gibi görünüyor . Yöntem, boş bir dosyada olduğu gibi herhangi bir değer döndürmezse istisna atılır.
Boş dosyalar ayrıca Belirtecin verilmediği sorununu da kışkırtır, bu nedenle kullanılan dizin girişinin veya herhangi bir sınıf dosyasının geçerli bir dosya olup olmadığını ve içeriği boş olup olmadığını değerlendirmek için ClassesScanner üzerinde bir kontrol olmalıdır. Oluşturulan dosyalara uygun içerik eklemeniz gerekir VEYA tanımlanmamalı / oluşturulmamalıdır.