当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.1到5.2升级错误

韩善
2023-03-14

当我试图使用官方指南将我们现有的项目从Laravel5.1更新到Laravel5.2时,我在composer更新后得到了一个错误

php artisan clear已编译

他跑了。这里是错误。

类\Foundation\Composer不存在

有人有类似的问题吗?当我用无脚本标志运行作曲家更新时,它会定期更新,所以这是一个清晰编译的问题。

下面是我的服务提供商和作曲家。json文件。

服务提供者

    Illuminate\Auth\AuthServiceProvider::class,
    Illuminate\Broadcasting\BroadcastServiceProvider::class,
    Illuminate\Bus\BusServiceProvider::class,
    Illuminate\Cache\CacheServiceProvider::class,
    Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
    Illuminate\Cookie\CookieServiceProvider::class,
    Illuminate\Database\DatabaseServiceProvider::class,
    Illuminate\Encryption\EncryptionServiceProvider::class,
    Illuminate\Filesystem\FilesystemServiceProvider::class,
    Illuminate\Foundation\Providers\FoundationServiceProvider::class,
    Illuminate\Hashing\HashServiceProvider::class,
    Illuminate\Mail\MailServiceProvider::class,
    Illuminate\Pagination\PaginationServiceProvider::class,
    Illuminate\Pipeline\PipelineServiceProvider::class,
    Illuminate\Queue\QueueServiceProvider::class,
    // Illuminate\Redis\RedisServiceProvider::class,
    Vetruvet\PhpRedis\PhpRedisServiceProvider::class,
    Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
    Illuminate\Session\SessionServiceProvider::class,
    Illuminate\Translation\TranslationServiceProvider::class,
    Illuminate\Validation\ValidationServiceProvider::class,
    Illuminate\View\ViewServiceProvider::class,
    Collective\Html\HtmlServiceProvider::class,
    Laravel\Socialite\SocialiteServiceProvider::class,
    Intervention\Image\ImageServiceProvider::class,
    Torann\GeoIP\GeoIPServiceProvider::class,
    Jenssegers\Agent\AgentServiceProvider::class,
    Barryvdh\Debugbar\ServiceProvider::class,

composer.json

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "fzaninotto/faker": "^1.6@dev",
    "laravelcollective/html": "5.2.*",
    "laravelcollective/remote": "~5.2",
    "kriswallsmith/assetic": "^1.3@dev",
    "pda/pheanstalk": "^3.0@dev",
    "aws/aws-sdk-php-laravel": "~3.0",
    "illuminate/http": "~5.2",
    "illuminate/session": "~5.2",
    "illuminate/support": "~5.2",
    "nesbot/carbon": "~1.18",
    "guzzlehttp/guzzle": "~5.3|~6.0",
    "vetruvet/laravel-phpredis": "dev-master",
    "predis/predis": "^1.1@dev",
    "laravel/socialite": "^3.0@dev",
    "intervention/image": "^2.3@dev",
    "brightcove/api": "^1.0@dev",
    "torann/geoip": "dev-master",
    "graham-campbell/throttle": "~5.1",
    "jenssegers/agent": "^3.0@dev"
},
"require-dev": {
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1",
    "symfony/dom-crawler": "~3.0",
    "symfony/css-selector": "~3.0",
    "barryvdh/laravel-debugbar": "^2.0@dev",
    "laracasts/generators": "dev-master"
},
"repositories": [
    {
        "type": "git",
        "url": "https://github.com/nardev/laravel-vzaar.git"
    }
],
"autoload": {
    "classmap": [
        "database",
        "app/Models",
        "app/Footgoll"
    ],
    "files": [
        "app/helpers.php"
    ],
    "psr-4": {
        "Myapp\\": "app/"
    }
},
"autoload-dev": {
    "classmap": [
        "tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "dev",
"prefer-stable": true
}

当我跑的时候

grep-nH-d递归'Composer'引导/app/config/

这是返回的内容:

引导/自动加载。php:7:|注册编写器自动加载引导/自动加载。php:10:| Composer提供了一个方便、自动生成的类加载器引导/自动加载。php:42:|在本地工作时。但是,我们需要加载作曲家

autoload.php文件是这样的:

    <?php

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Register The Composer Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require __DIR__.'/../vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Include The Compiled Class File
|--------------------------------------------------------------------------
|
| To dramatically increase your application's performance, you may use a
| compiled class file which contains all of the classes commonly used
| by a request. The Artisan "optimize" is used to create this file.
|
*/

$compiledPath = __DIR__.'/cache/compiled.php';

if (file_exists($compiledPath)) {
    require $compiledPath;
}

/*
|--------------------------------------------------------------------------
| Register The Workbench Loaders
|--------------------------------------------------------------------------
|
| The Laravel workbench provides a convenient place to develop packages
| when working locally. However we will need to load in the Composer
| auto-load files for the packages so that these can be used here.
|
*/
if (is_dir($workbench = __DIR__.'/../workbench'))
{
    Xtwoend\Workbench\Starter::start($workbench);
}

可能是工作台的问题吗?

更新:一个非常可怕的修复返回作曲家。php从5.1到vendor/laravel/framework/src/illighte/Foundation可以让应用程序正常运行,但我确实需要一个更好的解决方案,一个可以推向生产的解决方案。

共有3个答案

商燕七
2023-03-14

此处正在识别和讨论该缺陷:

https://github.com/laravel/framework/issues/9678

步博艺
2023-03-14

试试看

php artisan optimize --force

如果错误仍然存在,请删除供应商/已编译。php,然后运行上面的命令,这将重新创建供应商/已编译。php类。

上面的命令删除两个文件

引导/编译。php文件。此文件是在优化类时创建的。应用程序/存储/元/服务。json文件。此文件是在Laravel尝试优化应用程序使用的服务提供商的加载时创建的。

来源

当我运行清晰编译时,它删除了我项目中的供应商/compiled.php。

因为您根本没有编译过的类,所以不能删除它。这一定是你遇到问题的原因。不要费心清理编译过的类。。

我还将一个巨大的应用程序从4.2升级到5.0。问题……)

谭晓博
2023-03-14

你得到的错误都是关于你使用的包。由于Composer类的位置已更改,因此定位失败。

从升级说明中:

类已移动到Illumate\Foundation\Support\Composer。

等待pull请求被接受,例如laracasts/generators包,它包含在编写器中。json文件是与Laravel 5.2不兼容的软件包之一

https://github.com/laracasts/Laravel-5-Generators-Extended/issues/81

因此,出现此错误的最常用包之一是cvibrock/eloquent-slggable。

https://github.com/cviebrock/eloquent-sluggable/issues/214.

您只能等待拉取请求被接受,或者编辑供应商文件,这不是一个很酷的选择。

 类似资料:
  • 我目前正在花时间将我的项目从Laravel 4.2升级到Laravel 5.2。 在经历了很多麻烦之后,我设法使5.1版本正常运行,因此我启动了5.1到5.2程序,如官方文件中所述:https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0 第一步之后,我的composer.json是这样的: 我还更新了app.php配置以删除提供程序部分中的Artisa

  • 我相信我已经为4.1准备好了所有的依赖项,但是当我使用作曲家更新时,我会出现以下错误: 生成自动加载文件 脚本php artisan clear已编译,处理返回的更新后cmd事件时出错: 脚本php artisan optimize处理返回的更新后cmd事件时出错: 我的composer文件如下所示: { }

  • 问题内容: 最近从BC 1.34升级到1.45。我正在使用以下代码解码一些先前编码的数据: 使用BC 1.45时,出现以下异常: 编辑:有关此问题的更多信息。我正在使用以下内容从密码短语生成原始密钥: 我发现这导致BC 1.34与1.45的两个不同值。 它也可能与BouncyCastle不相关(我正在Android 2.3上进行测试) 问题答案: 看起来问题在于SecureRandom无法跨Fro

  • 在这个优秀团队的帮助下,我能够安装Rails。下一步是升级Rails。我按照文档中的建议尝试了两种方法,但都出现了错误。。。 C:\网站 C:\网站 我回顾了评论中给出的链接,但我真的不明白...抱歉。我希望有一个直接的解决办法。谢啦 我查看了GoRails站点,它需要一个Linux子系统,这似乎比我需要的要多,在线课程的讲师没有提到。我已经为运行Rails安装了所有东西,但最后一步是将Rails

  • 我从19.10升级到Ubuntu 20.04,现在我不能使用pip。 Python已安装: 但如果我试着检查pip,我会得到: 我迷路了。谢谢你的帮助 使现代化 我使用venv创建虚拟环境。当没有激活venv时,我可以使用pip3: 但是如果我激活一个venv,它就不起作用了: 感谢您的建议和持续的帮助。 使现代化 我尝试删除venv并创建一个新的venv,但似乎我需要pip工作才能做到这一点:

  • FIS 以下统称为 FIS2 简介 FIS3相对FIS2来说接口改动较大,并不是不考虑版本上的兼容,而是不愿意做简单的小修小补,希望从整体的角度打造一个易用性和可扩展性达到一个全新高度的工具。FIS2 与FIS3将并行维护,并且绝大部分插件是兼容的。 功能升级点简介 RoadMap目录定制更简单 FIS2中roadmap是最先匹配生效的,如果想覆盖解决方案的默认配置比较麻烦。FIS3中使用了类似c