Saya mengalami masalah ini dan meletakkan breakpoint pada setiap contoh 'Tidak ada token yang disediakan' yang dapat saya temukan dengan menggunakan:
grep -lr 'No tokens were provided' vendor/
yang dikembalikan:
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
Pengecualian saya dilemparkan ke TokenArrayScanner.php
file. Nilai instance "token" diatur dalam konstruktor, jadi saya meletakkan break point di sana dan meluncurkan kembali prosesnya. Sayangnya, konstruktor ini dipanggil berkali-kali pada banyak file, dan data untuk file yang di-tokenized tidak termasuk dalam panggilan konstruk. Saya dapat menentukan bahwa "token" hanyalah garis-garis file yang sedang diperiksa. Berdasarkan posting oleh CarComp, saya menggunakan ini untuk menemukan file yang menyinggung:
find . -type f -name '*.php' -empty
Ini menghasilkan sejumlah file yang hidup di bawah jalur yang berisi "dev / tes", yang dikecualikan dari pemindaian, dan satu file dari pengembang pihak ketiga. menghapus file ini memecahkan masalah dan perintah kompilasi diselesaikan hanya dengan keluhan dan bukan pengecualian.
Di sini, jika Anda ingin tahu BAGAIMANA menemukan file-file kosong itu, jalankan saja perintah ini (dengan asumsi Anda memiliki linux, dan akses ke shell) di direktori root magento Anda, atau direktori apa pun yang Anda kerjakan yang mungkin memiliki file kosong. .
sumber
Tampaknya Anda memiliki file kosong yang diuraikan oleh \ Magento \ Setup \ Module \ Di \ Code \ Reader \ ClassesScanner , yang menggunakan metode token_get_all PHP . Pengecualian dilemparkan, jika metode ini tidak mengembalikan nilai apa pun, yang merupakan kasus pada file kosong.
sumber
File kosong juga memprovokasi No token diberikan masalah, jadi harus ada pemeriksaan pada ClassesScanner untuk mengevaluasi apakah entri direktori yang digunakan atau file kelas apa pun adalah file yang valid dan jika isinya tidak kosong. Anda perlu menambahkan konten yang tepat dalam file yang dibuat ATAU itu tidak harus didefinisikan / dibuat.
sumber
Anda dapat memasukkan ini ke dalam jika kondisinya:
Kemudian periksa system.log untuk melihat file mana yang menghasilkan kesalahan ini.
sumber