आज मुझे उसी प्रकार की त्रुटि मिली:
PHP घातक त्रुटि: वर्ग \ _ \ _ \ _ वर्ग की घोषणा नहीं कर सकता, क्योंकि नाम पहले से ही लाइन में /var/www/m2/magento2/app/code/path/to/the/class.php में उपयोग किया जा रहा है
जहां लाइन 100 फ़ाइल का अंत है।
डिबगिंग के लगभग 4 घंटे बाद मुझे वास्तव में कारण पता चलता है: नेमस्पेस घोषणा में गलतफहमी। अंतिम क्षण तक मुझे विश्वास नहीं हुआ कि यह नामों की घोषणा में एक टाइपोग्राफिक त्रुटि है, लेकिन जब मैंने सभी नामों को नए सिरे से लिखा है - तो गलती गायब हो गई है। यह लेख बहुत उपयोगी था:
मैं थोड़ी देर के लिए अपना सिर खुजलाऊंगा, आश्चर्य होगा कि क्या हो रहा है, और आखिरकार यह एहसास हुआ कि यह है
Pulsetorm
यानी मैंने एक नाम स्थान का नाम गलत लिखा है, और जब प्रारंभिक ऑटोलॉड्स वर्ग फ़ाइल को लोड करता है, तो उसने उस वर्ग को परिभाषित नहीं किया होगा जिसे वह ढूंढ रहा है, और फिर एक दूसरा ऑटोलैडर (संगीतकार का आमतौर पर) उसे फिर से लोड करता है, और उसी को फिर से परिभाषित करने की कोशिश करता है। गलत वर्ग।
यानी, मैगेंटो वर्ग चाहता था
Pulsestorm\Helloworld\Observers\Block
लेकिन मैंने परिभाषित किया
Pulsetorm\Helloworld\Observers\Block
गलत नाम स्थान के लिए धन्यवाद।
धन्यवाद, एलन स्टॉर्म :)
अपडेट करें:
उस त्रुटि का एक अन्य प्रकार गलत नाम स्थान के लापता भाग के साथ नामकरण घोषणा है, जैसा कि इस उदाहरण में है:
त्रुटि:
रिपोजिटरी कोड पीढ़ी ... 1/7 [====> -----------------------] 14% 1 सेकंड 50.0 MiBPHP घातक त्रुटि: घोषित नहीं कर सकता वर्ग माइग्रेशन \ Step \ Version11410to2000Test, क्योंकि नाम पहले से ही /var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unests/testsuite/Mep/UrlRewrite/Version11410to2000estest में उपयोग में है। लाइन 109
जहां लाइन 109 फाइल का अंत है।
फ़ाइल में vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php
हमें नामस्थान मिला Migration\Step
जब सही नामस्थान होना चाहिए Migration\Step\UrlRewrite
क्योंकि इस वर्ग के लिए रास्ता है Migration/Step/UrlRewrite
। नाम स्थान को बदलने के बाद Migration/Step/UrlRewrite
त्रुटि हो गई है।