【问题标题】:Symfony 4 site, after composer update, now stuck in update loop of PHP Fatal Errors?Symfony 4 站点,作曲家更新后,现在卡在 PHP 致命错误的更新循环中?
【发布时间】:2018-04-21 02:24:34
【问题描述】:

我有一个 Symfony 4.0.8 网站。

几天前,一切正常。从那时起,我没有进行任何代码或配置更改。

已经运行了许多“composer”和“yarn”更新。

目前,我无法更新或访问该网站。

我陷入了“PHP 致命错误”作曲家更新循环——而且,iiuc,自动加载存在问题。

这是我看到的

cat composer.json
    ...
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    ...

composer dump-autoload
    Generating autoload files

composer clear-cache
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Cache directory does not exist (cache-vcs-dir): 
    Clearing cache (cache-repo-dir): /root/.composer/cache/repo
    Clearing cache (cache-files-dir): /root/.composer/cache/files
    Clearing cache (cache-dir): /root/.composer/cache

redis-cli flushall
    OK

composer update
        1/1:        http://packagist.org/p/provider-latest$ab716f1fe302ba4a374535db44b1ad22b3e9b9030c6e62892e9a7afac81b8c74.json
        Finished: success: 1, skipped: 0, failure: 0, total: 1
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Loading composer repositories with package information
    Updating dependencies (including require-dev)

    Prefetching 7 packages ????
      - Downloading (100%)

    Package operations: 7 installs, 0 updates, 0 removals
      - Installing friendsofsymfony/http-cache-bundle (dev-master 6b75eba): Loading from cache
      - Installing snc/redis-bundle (dev-master b133296): Loading from cache
      - Installing solarium/solarium (4.0.0-rc.1): Loading from cache
      - Installing symfony-cmf/block-bundle (dev-master 952b171): Loading from cache
      - Installing symfony-cmf/menu-bundle (dev-master 5c6bd22): Loading from cache
      - Installing symfony-cmf/routing-auto-bundle (dev-master ab9fa1d): Loading from cache
      - Installing symfony-cmf/tree-browser-bundle (dev-master 14ddf7d): Loading from cache
    Writing lock file
    Generating autoload files
    ocramius/package-versions:  Generating version class...
    ocramius/package-versions: ...done generating version class
    Executing script cache:clear [OK]
    Executing script assets:install --symlink --relative public [OK]
    Executing script security-checker security:check [OK]

composer update
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 0 installs, 0 updates, 0 removals
    Writing lock file
    Generating autoload files
    ocramius/package-versions:  Generating version class...
    ocramius/package-versions: ...done generating version class
    Executing script cache:clear [KO]
     [KO]
    Script cache:clear returned with error code 255
    !!  PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "CmfMenuBundle" from namespace "Symfony\Cmf\Bundle\MenuBundle".
    !!  Did you forget a "use" statement for another namespace? in /opt/test/src/Kernel.php:32
    !!  Stack trace:
    !!  #0 /opt/test/vendor/symfony/http-kernel/Kernel.php(403): App\Kernel->registerBundles()
    !!  #1 /opt/test/vendor/symfony/http-kernel/Kernel.php(122): Symfony\Component\HttpKernel\Kernel->initializeBundles()
    !!  #2 /opt/test/vendor/symfony/framework-bundle/Console/Application.php(64): Symfony\Component\HttpKernel\Kernel->boot()
    !!  #3 /opt/test/vendor/symfony/console/Application.php(143): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(S in /opt/test/src/Kernel.php on line 32
    !!  
    Script @auto-scripts was called via post-update-cmd

composer update
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 7 installs, 0 updates, 0 removals
      - Installing friendsofsymfony/http-cache-bundle (dev-master 6b75eba): Loading from cache
      - Installing snc/redis-bundle (dev-master b133296): Loading from cache
      - Installing solarium/solarium (4.0.0-rc.1): Loading from cache
      - Installing symfony-cmf/block-bundle (dev-master 952b171): Loading from cache
      - Installing symfony-cmf/menu-bundle (dev-master 5c6bd22): Loading from cache
      - Installing symfony-cmf/routing-auto-bundle (dev-master ab9fa1d): Loading from cache
      - Installing symfony-cmf/tree-browser-bundle (dev-master 14ddf7d): Loading from cache
    Writing lock file
    Generating autoload files
    ocramius/package-versions:  Generating version class...
    ocramius/package-versions: ...done generating version class
    Executing script cache:clear [OK]
    Executing script assets:install --symlink --relative public [OK]
    Executing script security-checker security:check [OK]

composer update
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 0 installs, 0 updates, 0 removals
    Writing lock file
    Generating autoload files
    ocramius/package-versions:  Generating version class...
    ocramius/package-versions: ...done generating version class
    Executing script cache:clear [KO]
     [KO]
    Script cache:clear returned with error code 255
    !!  PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "CmfMenuBundle" from namespace "Symfony\Cmf\Bundle\MenuBundle".
    !!  Did you forget a "use" statement for another namespace? in /opt/test/src/Kernel.php:32
    !!  Stack trace:
    !!  #0 /opt/test/vendor/symfony/http-kernel/Kernel.php(403): App\Kernel->registerBundles()
    !!  #1 /opt/test/vendor/symfony/http-kernel/Kernel.php(122): Symfony\Component\HttpKernel\Kernel->initializeBundles()
    !!  #2 /opt/test/vendor/symfony/framework-bundle/Console/Application.php(64): Symfony\Component\HttpKernel\Kernel->boot()
    !!  #3 /opt/test/vendor/symfony/console/Application.php(143): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(S in /opt/test/src/Kernel.php on line 32
    !!
    Script @auto-scripts was called via post-update-cmd

删除/禁用捆绑包不是这里的解决方案 - 再次重申,最近一切正常,所有当前捆绑包都已安装。

作曲家/纱线升级次数中的“某些东西”导致了这种情况。

问题是什么?

【问题讨论】:

    标签: symfony composer-php


    【解决方案1】:

    鉴于错误状态“类“CmfMenuBundle”来自命名空间“Symfony\Cmf\Bundle\MenuBundle””,似乎 CmfMenuBundle 更新存在某种类型的问题。

    修改您的 composer.json 以指定您的项目应该使用以前版本的 cmfMenuBundle,然后运行应该安装指定的特定版本的 composer install 命令。

    【讨论】:

      【解决方案2】:

      正如我所提到的,删除/禁用捆绑包不是这里的解决方案;捆绑版本显然也无关紧要。

      原来问题在于当前的作曲家版本,v1.6.4。

      https://github.com/composer/composer/issues/7268

      回退作曲家 v1.6.3 包治百病。

      【讨论】:

        猜你喜欢
        • 2018-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多