2015-12-10 2 views
16

मैंने आधिकारिक सिम्फनी-इंस्टॉलर (http://symfony.com/download) के माध्यम से एक नया सिम्फनी 3-इंस्टेंस स्थापित किया। पहली चीजें करने के बाद, मैंने परियोजना को गिट को समर्पित किया और दूसरे दिन किसी अन्य कंप्यूटर पर क्लोन किया। क्लोनिंग के बाद मैंने सभी सिम्फनी-निर्भरताओं को स्थापित करने के लिए "संगीतकार इंस्टॉल" चलाया। अब समस्या आती है: स्क्रिप्ट ScriptHandler::clearCache त्रुटि के साथ रुकती है: Could not open input file: app/console। सही है - symfony3 की एक नई निर्देशिका-संरचना है - इसलिए console अब /bin में रहता है - /app में नहीं। मैं संगीतकार/परियोजना को पुराने की बजाय नई संरचना का उपयोग करने के लिए कैसे कह सकता हूं?नई सिम्फनी 3 स्थापना: इनपुट फ़ाइल नहीं खोल सका: संगीतकार में ऐप/कंसोल

मैं कंसोल-कमांड SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true के बारे में यहां (What is the new Symfony 3 directory structure?) पढ़ता हूं - लेकिन यह मेरे मामले में काम नहीं करता है।

कोई सुझाव?

+0

क्या आपने परियोजना को क्लोन करने के बाद ही समस्या उत्पन्न की थी? क्या आप एक ताजा सिम्फनी 3 और क्लोन प्रोजेक्ट की तुलना कर सकते हैं? –

+0

मुझे लगता है कि आपने अपने प्रारंभिक इंस्टॉल के बाद composer.json फ़ाइल को बदल दिया होगा। यदि बिन/कंसोल नहीं मिला है तो आपको शुरू करने की आवश्यकता है। यहां तक ​​कि अगर कैश को साफ़ करने में मदद मिली। – Cerad

उत्तर

16

ScriptHandlercomposer.json फाइलों के नाम symfony-bin-dir में अतिरिक्त कॉन्फ़िगर कुंजी से डीआईआर लें। तो जांच कर लें कि संगीतकार सही विन्यास कुंजी होते हैं, उदाहरण के रूप में:

composer.json

.... 
"extra": { 
    "symfony-app-dir": "app", 
    "symfony-bin-dir": "bin", 
    "symfony-var-dir": "var", 
    .... 

संपादित करें:

समस्या, संगीतकार का कैश चे से संबंधित था तो यह हल किया गया था आदेश के साथ समाशोधन:

>php composer.phar clear-cache 

आशा इस मदद

+0

टिप के लिए धन्यवाद, लेकिन composer.json सही है, आपके उदाहरण की तरह ... – cklm

+1

हाय @cklm संभवतः संगीतकार कैश से संबंधित एक समस्या है? कमांड 'php composer.phar clear-cache' – Matteo

+0

कमांड के माध्यम से संगीतकार कैश को हटाने का प्रयास करें - संगीतकार-कैश (क्यों ?!) को साफ़ करने से मेरी समस्या हल हो गई है! – cklm

7

मैं एक ही समस्या में चल रहा हूं। यह निर्धारित करने के लिए कि नई निर्देशिका संरचना या पुराने का उपयोग करना है या नहीं, यह स्क्रिप्ट विविध निर्देशिका के अस्तित्व का उपयोग करती है। यदि var मौजूद है, तो नई निर्देशिका संरचना का उपयोग किया जाता है। अन्यथा यह पुरानी संरचना का उपयोग करता है।

डिफ़ॉल्ट .gitignore फ़ाइल var निर्देशिका और बिन निर्देशिका दोनों को गिट में जोड़ने से रोकती है।

क्या मैं मेरे लिए समस्या को हल करने में किया था परियोजना निर्देशिका में .gitignore संपादित करने के लिए इतना है कि यह इस तरह दिखता है था:

/app/config/parameters.yml 
/bin/* 
/build/ 
/composer.phar 
/vendor/ 
/web/bundles/ 
/var/* 
!var/cache 
/var/cache/* 
!var/cache/.gitkeep 
!var/logs 
/var/logs/* 
!var/logs/.gitkeep 
!var/sessions 
/var/sessions/* 
!var/sessions/.gitkeep 
!bin/console 
!bin/symfony_requirements 
/phpunit.xml 

मैं .gitignore पर एक विशेषज्ञ होने का नाटक नहीं है, इसलिए मैं मुझे यकीन नहीं है कि यह करने का सबसे शानदार तरीका है, लेकिन यह मेरे लिए काम करता है।

32

बस var निर्देशिका बनाएं। उसके बाद composer install और composer update ठीक काम करेगा।

स्पष्टीकरण:

vendor/sensio/distribution-bundle/Composer/ScriptHandler.php:462

protected static function useNewDirectoryStructure(array $options) 
{ 
    return isset($options['symfony-var-dir']) && is_dir($options['symfony-var-dir']); 
} 

तो तुम दोनों composer.json के extra में symfony-var-dir और इस निर्देशिका के मौजूदा की आवश्यकता है।

+2

मैं पुष्टि कर सकता हूं: जब 'var' गुम है => संगीतकार इंस्टॉल में ऐप/कंसोल नहीं खोल सकता है। 'Var' बनाने के लिए मेरे लिए चाल थी। –

+0

मेरे लिए भी चाल थी। 3.3 से 3.4 तक अपडेट करने के बाद इसका अनुभव किया लेकिन मुझे नहीं पता कि क्यों पहले कभी नहीं हुआ ... – fnagel

संबंधित मुद्दे