अपने स्थानीय विकास मशीन पर (php 5.3.14) मैं इस तरह एक वर्ग का उपयोग कर सकते "नाम पहले से ही प्रयोग में है" असामान्य गंभीर त्रुटि:Php साथ
<?php
namespace Shop\Repository;
use Shop\Entity\Day;
use Doctrine\ORM\EntityRepository;
class Product extends EntityRepository
{
// Code
}
वर्ग/मेरी/src में संग्रहित है /Shop/Repository/Product.php (पीएसआर -0 अनुरूप)। मेरे पास भीShop\Repository\Day
/my/src/Shop/Repository/Day.php पर स्थित है।
लेकिन, मेरा मचान सर्वर (php 5.3.10) मैं निम्नलिखित त्रुटि मिलती है पर:
PHP Fatal error: Cannot use Shop\Entity\Day as Day because the name is already in use in /my/src/Shop/Repository/Product.php on line 5
मैं संदेश को समझ सकता हूँ, अगर मैं अपने दुकान \ इकाई \ डे DayEntity करने के लिए आयात उपनाम, कोड काम करता है। लेकिन मैं घातक त्रुटि के कारण को समझ नहीं पा रहा हूं: यह PHP 5.3.14 (या कम से कम, मेरी कॉन्फ़िगरेशन के साथ) पर क्यों काम करता है और 5.3.10 (या कम से कम, सर्वर की कॉन्फ़िगरेशन के साथ) नहीं?
मुझे लगता है कि समस्या यह है क्योंकि नामस्थान Shop\Repository
में पहले से ही Day
लोड हो चुका है। लेकिन इसने मेरे सेटअप में त्रुटियों का कभी भी नेतृत्व नहीं किया है! क्या चल रहा है?
'एंटीटीडे के रूप में दुकान \ इकाई \ दिन का उपयोग करें;', या बस इसे पूरी तरह से योग्य नाम के साथ देखें और 'उपयोग' घोषणा पूरी तरह से छुटकारा पाएं। शायद [इस] (http://www.php.net/manual/en/language.namespaces.importing.php) को फिर से पढ़ें। – DaveRandom
यह स्पष्ट है कि यदि आप किसी नामस्थान में दिन नामक कक्षा को आयात करते हैं तो पहले से ही एक कक्षा नामक कक्षा को आयात किया जाएगा। यह आपके स्थानीय सेट-अप पर क्यों काम करता है; मैं 5.4.10 और 5.3.14 के बीच नामस्थान से संबंधित चेंजलॉग में कोई भी बगफिक्स नहीं देख सकता। क्या यह संभव है कि आपके रिपोजिटरी \ डे क्लास का उपयोग उस बिंदु पर नहीं किया गया है जब आप एंटीटी \ डे लोड करते हैं? – Leigh
@ लेइघ मैं गिट से सटीक उसी क्लोन के साथ सटीक उसी पृष्ठ का अनुरोध कर रहा हूं। इसलिए यह एक (php) कॉन्फ़िगरेशन समस्या होनी चाहिए। –