J'ai rencontré ce problème et j'ai mis des points d'arrêt sur chaque instance de «Aucun jeton fourni» que j'ai pu trouver en utilisant:
grep -lr 'No tokens were provided' vendor/
qui a renvoyé:
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
Mon exception était levée dans le TokenArrayScanner.php
fichier. La valeur d'instance "tokens" est définie dans le constructeur, j'ai donc mis un point d'arrêt là et relancé le processus. Malheureusement, ce constructeur est appelé plusieurs fois sur de nombreux fichiers et les données du fichier en cours de jeton ne sont pas incluses dans l'appel de construction. J'ai pu déterminer que les "jetons" ne sont que des lignes du fichier en cours d'inspection. Sur la base du message de CarComp, je l'ai utilisé pour trouver le fichier incriminé:
find . -type f -name '*.php' -empty
Cela a révélé un certain nombre de fichiers qui vivaient sous des chemins qui contenaient "dev / tests", qui sont exclus de l'analyse, et un seul fichier provenant d'un développeur tiers. la suppression de ce fichier a résolu le problème et la commande de compilation s'est terminée avec seulement des plaintes et non des exceptions.
Ici, si vous voulez savoir COMMENT trouver ces fichiers vides, exécutez simplement cette commande (en supposant que vous avez linux et l'accès au shell) dans votre répertoire racine magento, ou dans le répertoire dans lequel vous travaillez qui pourrait avoir des fichiers vides. .
la source
Il semble que vous ayez un fichier vide qui est analysé par le \ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScanner , qui utilise la méthode PHP token_get_all . L'exception est levée, si la méthode ne renvoie aucune valeur, ce qui est le cas sur un fichier vide.
la source
Les fichiers vides provoquent également le problème Aucun jeton n'a été fourni, il devrait donc y avoir une vérification sur ClassesScanner pour évaluer si l'entrée de répertoire utilisée ou tout fichier de classe est un fichier valide et si son contenu n'est pas vide. Vous devez ajouter un contenu approprié dans les fichiers créés OU il ne doit pas être défini / créé.
la source
Vous pouvez mettre cela à l'intérieur si condition:
Vérifiez ensuite system.log pour voir quel fichier a généré cette erreur.
la source