【问题标题】:Laravel: Update from 5.2.12 to 5.2.31Laravel:从 5.2.12 更新到 5.2.31
【发布时间】:2017-01-27 22:21:47
【问题描述】:

我有一个 Laravel 5.2.12 项目(网站),这是一个大项目,几乎完成了...有没有什么简单的方法可以从 5.2.12 更新 Laravel 到 5.2.31 不影响项目(不影响已经完成的工作)?我该怎么做?

那么,问题是如何将现有项目上的 Laravel 版本从 5.2.12 更新为 5.2.31

编辑:这是我的 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.*",
        "cartalyst/sentinel": "2.0.*",
        "intervention/image": "^2.3",
        "barryvdh/laravel-debugbar": "^2.2",
        "slynova/laravel-commentable": "^2.0",
        "barryvdh/laravel-ide-helper": "v2.2.2"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

为了将 Laravel 更新到 5.2.31(到最新的 5.2 版本)应该做些什么改变?

【问题讨论】:

  • 次要版本始终向后兼容,因此更新没有问题。从安全的角度来看,它甚至需要定期更新。
  • composer update laravel/framework
  • @SimonSvensson 运行此命令将我的 Laravel 更新为 5.2.20 而不是 5.2.31
  • 这意味着您当前的软件包与 5.2.20 兼容,但不兼容 5.2.21(或更高版本)。查看 packagist 显示 5.2.21 开始需要 psy/psysh 0.7.*(来自之前的 0.6.*)。试试composer update laravel/framework --with-dependenciescomposer update laravel/framework psy/psysh

标签: laravel laravel-5 laravel-5.2 composer-php


【解决方案1】:

更新composer.json 以在您想要的版本上使用laravel\laravel。然后在命令行中运行composer update

您的项目从5.2.12 更新到5.2.31 应该不会有任何问题,因为它们大多是错误修复。但请注意,其他依赖项可能会更新到新版本。因此,如果导致打嗝,您可能需要在 composer.json 文件中将它们设置为固定版本。

【讨论】:

  • 我认为您的意思是 composer update composer.lock 文件包含确切的版本。一般不需要调整composer文件
  • 另外,最好不要锁定 composer.json 文件中的版本,而是使用像 1.0.* 这样的模式。这样您就不会错过安全修复和其他错误修复等次要更新
  • 这是注释,不是要求。如果 OP 对更新版本的软件包及其与他的代码的兼容性持怀疑态度。但是,是的,它们绝对不会造成任何问题。
  • @JhonnyWalker 我已经编辑了我的问题,我已经添加了我的composer.json 的内容。有laravel/framework": "5.2.* 所以我想我只需要运行composer update 命令,它就会更新到最新的5.2 版本(5.2.31),对吧?配置文件(或我的控制器、刀片视图、模型......)会被保留吗?另外,如果您查看我的composer.json - 您可以看到已安装的其他软件包...因此,通过运行 composer update 我是否有风险将这些软件包更新到与 Laravel 5.2 不兼容的版本?
  • @PerkaMika 是的,它会将您的框架更新到最后一个稳定的5.2 版本,并且第三方软件包将与5.2 版本兼容。有一些检查发生。
猜你喜欢
  • 2016-09-19
  • 2016-09-11
  • 1970-01-01
  • 2017-08-31
  • 2020-03-28
  • 2017-03-03
  • 2018-03-08
  • 2020-03-08
  • 1970-01-01
相关资源
最近更新 更多