ম্যাজেন্টো 2 - সেটআপ: ডি: সংকলন কোনও টোকেন ত্রুটি সরবরাহ করা হয়নি


11

ম্যাজেন্টো 2-এ আমি যখন চালাচ্ছি setup:di:compileআমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

[জেনড \ কোড \ ব্যতিক্রম \ রানটাইম এক্সেপশন]
কোনও টোকেন সরবরাহ করা হয়নি

এই সমস্যার সমাধান কিভাবে?

আমি সমস্ত অতিরিক্ত মডিউলগুলি অক্ষম করেছি, রানআপ সেটআপ করেছি: আপগ্রেড করেছি, তবুও আমি টোকেনগুলির ত্রুটি পেয়েছি।

উত্তর:


23

আমি এই সমস্যাটি অনুভব করেছি এবং 'টোকেন সরবরাহ করা হয়নি' এর প্রতিটি উদাহরণে ব্রেকপয়েন্টগুলি রেখেছি যা আমি খুঁজে পেয়েছি:

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ফাইলটিতে ফেলে দেওয়া হচ্ছে । "টোকেন" ইনস্ট্যান্স মানটি কনস্ট্রাক্টরে সেট করা আছে, তাই আমি সেখানে একটি ব্রেক পয়েন্ট রেখে প্রক্রিয়াটি আবার চালু করেছি। দুর্ভাগ্যক্রমে, এই কনস্ট্রাক্টরকে অসংখ্য ফাইলগুলিতে বহুবার ডাকা হয় এবং ফাইলটি টোকেনাইজ হওয়ার জন্য ডেটা কনস্ট্রাক্ট কলটিতে অন্তর্ভুক্ত করা হয় না। আমি নির্ধারণ করতে সক্ষম হয়েছি যে "টোকেন" ফাইলটি পরিদর্শন করার কেবল লাইন। কারকম্পের পোস্টের ভিত্তিতে, আপত্তিজনক ফাইলটি অনুসন্ধান করতে আমি এটি ব্যবহার করেছি:

find . -type f -name '*.php' -empty

এটি "ডেভ / টেস্টস" সম্বলিত অনেকগুলি ফাইলকে স্ক্যানিং থেকে বাদ দেওয়া হয়েছে এবং তৃতীয় পক্ষের বিকাশকারী থেকে একটি একক ফাইল তৈরি করেছে। এই ফাইলটি সরানো সমস্যার সমাধান করেছে এবং কমপাইল কমান্ডটি কেবল অভিযোগ দিয়ে সম্পূর্ণ হয়েছে এবং ব্যতিক্রম নয়।


ধন্যবাদ, সত্যিই খুব সহায়ক। আমি কোনও ত্রুটি ছাড়াই সংকলন করতে সক্ষম হয়েছি এমন ফাইল মুছে ফেলার পরে আমাদের কাস্টম মডিউলে একটি ফাঁকা ফাইল রয়েছে।
মনীশ

10

এখানে, যদি আপনি এই খালি ফাইলগুলি কীভাবে সন্ধান করতে চান তা জানতে চান, কেবলমাত্র আপনার ম্যাজেন্টো রুট ডিরেক্টরিতে এই কমান্ডটি (আপনার কাছে লিনাক্স রয়েছে এবং শেল অ্যাক্সেস ধরে রেখে) চালনা করুন বা আপনি যে ডিরেক্টরিতে কাজ করছেন তাতে ফাঁকা ফাইল থাকতে পারে .. ।

find -type f -empty

5

দেখে মনে হচ্ছে আপনার কাছে একটি খালি ফাইল রয়েছে যা \ ম্যাজেন্টো \ সেটআপ \ মডিউল \ ডি \ কোড \ পাঠক \ ক্লাসস্ক্যানার , যা পিএইচপি টোকেন_জেট_এল পদ্ধতি ব্যবহার করে । ব্যতিক্রম নিক্ষেপ করা হয়, যদি পদ্ধতিটি কোনও মান ফেরত না দেয় যা খালি ফাইলের ক্ষেত্রে।


3

খালি ফাইলগুলিও টোকেন সরবরাহ করার বিষয়টি উত্সাহিত করে, তাই ব্যবহৃত ডিরেক্টরি এন্ট্রি বা কোনও শ্রেণি ফাইল যদি একটি বৈধ ফাইল হয় এবং যদি এর সামগ্রী খালি না থাকে তবে মূল্যায়ন করার জন্য ক্লাসস্ক্যানারকে পরীক্ষা করা উচিত check আপনাকে তৈরি করা ফাইলগুলির মধ্যে যথাযথ সামগ্রী যুক্ত করতে হবে বা এটি সংজ্ঞায়িত / তৈরি করা উচিত নয়।


3

শর্ত থাকলে আপনি এটি ভিতরে রাখতে পারেন:

    if (!$this->tokens) {
        \Zend_Debug::dump(get_object_vars($this); exit;
        throw new \Zend\Code\Exception\RuntimeException('No tokens were provided');
    }

তারপরে কোন ফাইল এই ত্রুটি তৈরি করেছে তা দেখতে system.log পরীক্ষা করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.