1

composer update コマンドを実行したところ、symfony 2.1.7 から symfony 2.1.8 に更新されました。これが私の問題の始まりです。symfony コンソール コマンドを実行しようとすると、次のようなエラーが発生します。

 Fatal error: Class 'Symfony\Component\Console\Input\ArgvInput' not found in C:\xampp\htdocs\myproject\app\console on line 16

ブラウザでプロジェクトを実行すると、次のエラーが発生します。

Fatal error: Class 'Symfony\Component\ClassLoader\DebugClassLoader' not found in C:\xampp\htdocs\myproject\app\bootstrap.php.cache on line 542

以前は、すべて正常に機能していました。

これを修正するにはどうすればよいですか?

ここに私の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.7",
    "imagine/Imagine": ">=0.2.8",
    "liip/imagine-bundle": "*@dev",
    "knplabs/knp-paginator-bundle": "dev-master",
    "cbsi/doctrine2-nestedset": "dev-master",
    "exercise/htmlpurifier-bundle": "dev-master",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.0.*",
    "twig/extensions": "1.0.*@dev",
    "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.*",
    "kriswallsmith/assetic": "1.1.*@dev"
},
"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"
    ]
},
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web"
}
}
4

3 に答える 3

2

sensio distribution bundle=5 で同じエラーが発生した場合、問題はFatal error: Class 'Symfony\Component\Console\Input\ArgvInput' not found in app/console on line 16 である必要があります

于 2015-11-30T09:07:15.490 に答える
1

composer を更新してみてください ( https://getcomposer.org/doc/03-cli.md#self-update )

composer self-update

キャッシュをクリアします。Windows の場合はC:\Users\<user>\AppData\Roaming\Composer( https://getcomposer.org/doc/03-cli.md#composer-home )

その後、更新を再度実行します。

symfony2 キャッシュ フォルダーを手動で削除すると役立つ場合があります。

于 2013-03-13T13:00:08.743 に答える
0

ブートストラップファイルが適切に再構築されなかったため、composer.jsonファイルには、このタスクが確実に実行されるようにするスクリプトエントリが含まれている必要があります(--no-scriptsフラグを使用して実行している場合を除く)。

"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"
    ]
}

symfonyディレクトリで次のコマンドを実行することにより、ブートストラップファイルをビルドするスクリプトを手動で実行できます。

php /vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
于 2013-03-13T10:36:32.397 に答える