8

मैं सिम्फनी 2.1 में नई परियोजना बना रहा हूं। मैं यह जांचना चाहता था कि मेरा सर्वर मेरे सर्वर पर सही तरीके से जाएगा या नहीं, इसलिए मैंने सभी फाइलों की प्रतिलिपि बनाई, कैश साफ़ कर दिया और अनुमतियां सेट कीं। देव वातावरण सब कुछ में स्थानीय रूप से ठीक है, लेकिन जब मैं अनुरोध करता हूँ "ऑनलाइन - prod" मेरे सर्वर पर संस्करण मैं कोई त्रुटि मिलती है:सिम्फनी 2 - कक्षा प्रोड पर्यावरण में नहीं मिली

Fatal error: Class 'Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle' not found in /www/gastlich_www/www/livescore.gastlich.iq.pl/app/AppKernel.php on line 25 

मैं इस समस्या के बारे में कुछ जानकारी मिल गया है, लेकिन उन सभी को बदल रहा है से संबंधित है सिम्फनी \ बंडल से डॉक्टरेट \ बंडल और सिम्फनी 2.0 तक नामस्थान।

इसलिए मैंने अपनी AppKernel.php फ़ाइल की जांच की है, और मेरा बंडल पथ सही था।

मेरे composer.json लगता है:

{ 
"name": "symfony/framework-standard-edition", 
"description": "The \"Symfony Standard Edition\" distribution", 
"autoload": { 
    "psr-0": { "": "src/" } 
}, 
"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.0.*", 
    "twig/extensions": "1.0.*", 
    "symfony/assetic-bundle": "2.1.*", 
    "symfony/swiftmailer-bundle": "2.1.*", 
    "symfony/monolog-bundle": "2.1.*", 
    "sensio/distribution-bundle": "2.1.*", 
    "sensio/framework-extra-bundle": "2.1.*", 
    "sensio/generator-bundle": "2.1.*", 
    "jms/security-extra-bundle": "1.2.*", 
    "jms/di-extra-bundle": "1.1.*", 
    "stof/doctrine-extensions-bundle": "dev-master", 
    "doctrine/doctrine-fixtures-bundle": "dev-master" 
}, 
"scripts": { 
    "post-install-cmd": [ 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
    ], 
    "post-update-cmd": [ 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
    ] 
}, 
"minimum-stability": "dev", 
"extra": { 
    "symfony-app-dir": "app", 
    "symfony-web-dir": "web" 
} 

}

और AppKernel.php विन्यास:

<?php 

use Symfony\Component\HttpKernel\Kernel; 
use Symfony\Component\Config\Loader\LoaderInterface; 

class AppKernel extends Kernel 
{ 
    public function registerBundles() 
    { 
     $bundles = array(
      new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
      new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
      new Symfony\Bundle\TwigBundle\TwigBundle(), 
      new Symfony\Bundle\MonologBundle\MonologBundle(), 
      new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
      new Symfony\Bundle\AsseticBundle\AsseticBundle(), 
      new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
      new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
      new JMS\AopBundle\JMSAopBundle(), 
      new JMS\DiExtraBundle\JMSDiExtraBundle($this), 
      new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(), 
      new Acme\StoreBundle\AcmeStoreBundle(), 
      new Livescore\StatsBundle\LivescoreStatsBundle(), 
      new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), 
      new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle() 
     ); 

     if (in_array($this->getEnvironment(), array('dev', 'test'))) { 
      $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 
      $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 
      $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 
     } 

     return $bundles; 
    } 

    public function registerContainerConfiguration(LoaderInterface $loader) 
    { 
     $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); 
    } 
} 

मैं यह पता लगाने की जहां एक समस्या है कोशिश कर रहा था, तो मैं नष्ट कर दिया AppKernel.php में यह बंडल, और मुझे अगली एक घातक त्रुटि मिली:

Fatal error: Class 'Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle' not found in /www/gastlich_www/www/livescore.gastlich.iq.pl/app/AppKernel.php on line 24 

तो मुझे लगता है, मैं पिछले 2 बंडलों के साथ ही समस्या है कि: जो composer.json में देव-गुरु संस्करण है StofDoctrineExtensionsBundle और DoctrineFixturesBundle,। इस बिंदु पर, मुझे कोई और विचार नहीं मिला है। मैं इस समस्या को गूगल के लिए कोशिश कर रहा था, लेकिन समस्याओं का 90% Symfony 2.0 और चलती Git भंडार के बारे में था,/

स्थानीय देव वातावरण: पीएचपी 5.4.6 Mysql 5.5.27 अपाचे 2.2.22 (फेडोरा)

और अपने सर्वर env: पीएचपी 5.4.6 MySql 5.0.32

किसी भी मदद की सराहना की जाएगी।

धन्यवाद!

+0

इस फ़ाइल (DoctrineFixturesBundle वर्ग के साथ) करता है शारीरिक रूप से मौजूद हैं? चलाने का प्रयास करें: php composer.phar अद्यतन, और देखें कि समस्या अभी भी होती है – Cyprian

+0

हाय, मैं compser.phar अद्यतन चलाता हूं और मुझे "स्रोत निर्देशिका में असामान्य परिवर्तन" के साथ कुछ त्रुटियां मिली हैं। इसलिए मैंने इन विवादित विक्रेताओं को हटा दिया और सब ठीक हो गया। स्क्रिप्ट ने किसी भी फिक्स्चर/स्टॉफ बंडल को अपडेट नहीं किया था। अगला चरण ऑनलाइन सर्वर में परिवर्तनों की प्रतिलिपि बनाना था और मैंने पूरी एप्लिकेशन निर्देशिका की प्रतिलिपि बनाई थी। कैश हटाने के बाद, मेरा आवेदन ऑनलाइन सर्वर पर अच्छा चल रहा है और मुझे नहीं पता कि समस्या कहां थी;/आपकी मदद के लिए धन्यवाद और सुझाव दें :) –

उत्तर

-2

एप्लिकेशन/autoload.php

use Doctrine\Common\Annotations\AnnotationRegistry; 

$loader = require __DIR__.'/../vendor/autoload.php'; 

// intl 
if (!function_exists('intl_get_error_code')) { 
    require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php'; 

    $loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs'); 
} 

$loader->add('Stof\DoctrineExtensionsBundle', __DIR__.'/../vendor/stof/doctrine-extensions-bundle'); 
$loader->add('Gedmo' , __DIR__.'/../vendor/gedmo/doctrine-extensions/lib'); 

AnnotationRegistry::registerLoader(array($loader, 'loadClass')); 

return $loader; 
7

आप अपडेट/संगीतकार स्थापित करने से पहले कमांड लाइन के लिए उत्पादन के लिए पर्यावरण को सेट करने के रूप में अच्छी तरह की जरूरत है।

आधिकारिक Symfony प्रलेखन से यहाँ:

If you get a "class not found" error during this step, you may need to run export SYMFONY_ENV=prod before running this command so that the post-install-cmd scripts run in the prod environment.

+1

यह सही जवाब है, लेकिन यह एक शर्म की बात है कि संगीतकार बस काम नहीं करता उत्पादन में सिम्फनी ... –