2017-02-11 14 views
6

मैं खिड़कियों पर संगीतकार का उपयोग कर रहा है, और इसे सफलतापूर्वक मेरी 2 संकुल है कि मैं अपने composer.json फ़ाइल से उपयोग कर रहा हूँ लोड कर रहा है जब मैं एक composer install या composer update प्रदर्शन करते हैं।संगीतकार autoload_namespaces सरणी रिक्त है, लेकिन यह मेरी संकुल डाउनलोड कर रहा है

{ 
    "require": { 
     "bcosca/fatfree": "dev-master", 
     "respect/validation": "^1.1" 
    } 
} 

मेरी index.php में पहली पंक्ति है

require_once __DIR__ . '\vendor\autoload.php'; 

यह कुछ भी लोड हो रहा है होने के लिए नहीं लगता था, नहीं इन 2 संकुल से परिभाषित वर्गों से संबंधित त्रुटियों, उदाहरण के लिए की एक बहुत कुछ। मैं इस पर आगे देखा और पाया कि मेरी autoload_namespaces.php इस प्रकार है:

<?php 

// autoload_namespaces.php @generated by Composer 

$vendorDir = dirname(dirname(__FILE__)); 
$baseDir = dirname($vendorDir); 

return array(
); 

सरणी पूरी तरह से खाली, कैसे होता है है? मैं यहाँ में इन 2 संकुल की आवश्यकताओं को देखने के लिए ...

मदद के लिए धन्यवाद की उम्मीद! F3:

{ 
    "name": "bcosca/fatfree", 
    "description": "A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!", 
    "homepage": "http://fatfreeframework.com/", 
    "license": "GPL-3.0", 
    "require": { 
     "php": ">=5.3.6" 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/bcosca/fatfree" 
     } 
    ], 
    "autoload": { 
     "files": ["lib/base.php"] 
    } 
} 

सत्यापनकर्ता:

{ 
    "name": "respect/validation", 
    "description": "The most awesome validation engine ever created for PHP", 
    "keywords": ["respect", "validation", "validator"], 
    "type": "library", 
    "homepage": "http://respect.github.io/Validation/", 
    "license": "BSD Style", 
    "authors": [ 
     { 
      "name": "Respect/Validation Contributors", 
      "homepage": "https://github.com/Respect/Validation/graphs/contributors" 
     } 
    ], 
    "require": { 
     "php": ">=5.4", 
     "symfony/polyfill-mbstring": "^1.2" 
    }, 
    "require-dev": { 
     "egulias/email-validator": "~1.2", 
     "malkusch/bav": "~1.0", 
     "mikey179/vfsStream": "^1.5", 
     "phpunit/phpunit": "~4.0", 
     "symfony/validator": "~2.6.9", 
     "zendframework/zend-validator": "~2.3" 
    }, 
    "suggest": { 
     "ext-bcmath": "Arbitrary Precision Mathematics", 
     "ext-mbstring": "Multibyte String Functions", 
     "egulias/email-validator": "Strict (RFC compliant) email validation", 
     "malkusch/bav": "German bank account validation", 
     "symfony/validator": "Use Symfony validator through Respect\\Validation", 
     "zendframework/zend-validator": "Use Zend Framework validator through Respect\\Validation", 
     "fabpot/php-cs-fixer": "Fix PSR2 and other coding style issues" 
    }, 
    "autoload": { 
     "psr-4": { 
      "Respect\\Validation\\": "library/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "Respect\\Validation\\": "tests/library/" 
     } 
    }, 
    "extra": { 
     "branch-alias": { 
      "dev-master": "1.1-dev" 
     } 
    }, 
    "scripts": { 
     "test": "./vendor/bin/phpunit" 
    } 
} 

और सत्यापनकर्ता लोड करने के बाद, इस Symfony घटक इसके साथ आया था:

{ 
    "name": "symfony/polyfill-mbstring", 
    "type": "library", 
    "description": "Symfony polyfill for the Mbstring extension", 
    "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"], 
    "homepage": "https://symfony.com", 
    "license": "MIT", 
    "authors": [ 
     { 
      "name": "Nicolas Grekas", 
      "email": "[email protected]" 
     }, 
     { 
      "name": "Symfony Community", 
      "homepage": "https://symfony.com/contributors" 
     } 
    ], 
    "require": { 
     "php": ">=5.3.3" 
    }, 
    "autoload": { 
     "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, 
     "files": [ "bootstrap.php" ] 
    }, 
    "suggest": { 
     "ext-mbstring": "For best performance" 
    }, 
    "minimum-stability": "dev", 
    "extra": { 
     "branch-alias": { 
      "dev-master": "1.3-dev" 
     } 
    } 
} 
+0

'अपने संकुल की composer.json' फाइलों को दिखायेगा करें। यह जानने के बिना कि आपने उनके लिए ऑटोलोडिंग कैसे कॉन्फ़िगर की है, हम केवल अनुमान लगा सकते हैं कि क्या गलत हो रहा है। – xabbuh

+0

@xabbuh इसके बारे में क्षमा करें, अब उन्हें जोड़ा गया है। – Shackrock

+1

आपको किस तरह की त्रुटियां मिलीं? 'autoload_namespaces.php' खाली होना चाहिए क्योंकि यह उन निर्भरताओं में से कोई भी PSR-0 ऑटोलोडिंग का उपयोग नहीं करता है। इसके बजाय 'autoload_files.php' और' autoload_psr4.php' में आपके संकुल के बारे में जानकारी है। – Joe

उत्तर

4

सरणी पूरी तरह से खाली, कैसे होता है है? मैं यहाँ में इन 2 संकुल की आवश्यकताओं को देखने के लिए ...

  • संगीतकार एकाधिक वर्ग लोड हो रहा है तरीकों का समर्थन करता है उम्मीद। एक महत्वपूर्ण PSR4 विनिर्देश लागू करता है। Symfony और RespectPSR4 उपयोग कर रहे हैं। आप अपने composer.json फ़ाइलों या अपने उत्पन्न vendor/composer/autoload_psr4.php फ़ाइल को देखकर यह सत्यापित कर सकते हैं।

  • फैट-फ्री फ्रेमवर्क कंपोज़र स्वत: lib/base.php फ़ाइल को स्वत: लोड करने देता है। यह पता करने के लिए क्योंकि base.php दो बार सहित एक PHP Fatal error: Cannot declare class Cache, because the name is already in use फेंक देंगे। समाधान संगीतकार को अपना काम करने दें और इसके बजाय $f3 = Base::instance() लाएं।

सुझाव

  • vendor फ़ोल्डर हटाएँ और एक साफ Composer

  • के साथ स्थापित सत्यापित करें कि वर्ग नामस्थान लापता नहीं कर रहे हैं (या आयात किए जाते हैं) अपने कोड में बनाने उदाहरण के लिए \Respect\Validation\Validator बजाय Validator

0

संकुल स्वयं से composer.json जोड़ना

समस्या आपकी requ_once() लाइन के साथ है। इसने autoload.php को सही फ़ाइल पथ नहीं दिया है। अपने 'विक्रेता' निर्देशिका तो index.php के रूप में एक ही स्तर में है, तो तुम सब करने की बस autoloader की आवश्यकता है जिन्हें आप नीचे देख:

enter image description here

<?php 
require_once 'vendor/autoload.php'; 

echo 'Loaded...'; 

नोट बिल्कुल कुछ भी गलत नहीं के साथ है कि वहाँ autoload_namespaces.php। मेरा भी तुम्हारा जैसा ही है।

+0

मुझे नहीं लगता कि यह 'आवश्यकता' और 'requ_once' जैसी समस्या है जो घातक 'E_COMPILE_ERROR' स्तर त्रुटि उत्पन्न करती है और अज्ञात वर्ग नामों की रिपोर्ट करने के बजाय स्क्रिप्ट को रोकती है। – Rayne

+0

@ रेयन सहमत हुए। ऐसा लगता है कि आवश्यक पथ भी ठीक है। – Amila

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