2016-11-19 60 views
-3

我有一个旧的symfony项目,这里是composer.json:如何upgrad到symfony的主要版本与作曲家

{ 
"name": "symfony/framework-standard-edition", 
"license": "MIT", 
"type": "project", 
"description": "The \"Symfony Standard Edition\" distribution", 
"autoload": { 
    "psr-0": {"": "src/"} 
}, 
"require": { 
    "php": ">=5.5.9", 
    "symfony/symfony": "*", 
    "symfony/console": ">=2.2.3", 
    "doctrine/orm": "~2.2,>=2.2.3", 
    "doctrine/doctrine-bundle": "~1.2", 
    "twig/extensions": "~1.0", 
    "symfony/assetic-bundle": "~2.3", 
    "symfony/swiftmailer-bundle": "~2.3", 
    "symfony/monolog-bundle": "~2.4", 
    "sensio/distribution-bundle": "~2.3", 
    "sensio/framework-extra-bundle": "~3.0", 
    "sensio/generator-bundle": "~2.3", 
    "incenteev/composer-parameter-handler": "~2.0", 
    "facebook/php-sdk-v4" : "4.0.*", 
    "symfony/finder": "^3.1", 
    "sonata-project/core-bundle": "^3.1", 
    "sonata-project/seo-bundle": "^2.0", 
    "sonata-project/admin-bundle": "^3.6" 
}, 
"scripts": { 
    "post-install-cmd": [ 
     "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
     "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": [ 
     "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
    ] 
}, 
"config": { 
    "bin-dir": "bin" 
}, 
"extra": { 
    "symfony-app-dir": "app", 
    "symfony-web-dir": "web", 
    "incenteev-parameters": { 
     "file": "app/config/parameters.yml" 
    }, 
    "branch-alias": { 
     "dev-master": "2.4-dev" 
    } 
} } 

首先我会使用:PHP composer.phar自我更新 然后我用下面的命令来升级: PHP composer.phar更新 这里是结果:

搜索一个软件包:symfony的

找到15包配套配件克的symfony

[0]的symfony/symfony的[1] rgies/symfony的[2]的PHP-TMDB/symfony的
[3] webforge/symfony的[4] lexpress/symfony1 [5]的symfony/symfony1 [6] sabaki-dev/symfony1 [7] behat/symfony2-extension [8] escapestudios/symfony2-coding-standard [9] smarkio/symfony1 [10] languara/symfony3 [11] m6web/symfony2-coding-standard [12] irongit/Symfony2的流响应[13] polishsymfonycommunity/Symfony2的-嘲笑者延伸[14] 的symfony /控制台

输入包#添加,或完整的包名称,如果它不是 列出:0输入要求的版本约束(或保留空白为 使用最新版本):使用symfony/symfony版本^ 3.1搜索 对于一个包:./composer.json已更新正在加载作曲家 包含软件包的存储库信息更新依赖项(包括 require-dev)您的需求无法解析为可安装的 软件包集。

问题1个 - 结论:不安装的symfony/symfony的v3.1.6 - 结论:不安装的symfony/symfony的v3.1.5 - 结论:不安装的symfony/symfony的v3.1.4 - 结论:不要安装symfony/symfony v3.1.3 - sensio/generator-bundle的安装请求(锁定在v2.5.3,要求为〜2.3) - >可通过 sensio/generator-bundle [v2.5.3]满足。结束语:不要安装symfony/symfony v3.1.2 - 结论:不要安装symfony/symfony v3.1.1 - 不要安装symfony/finder v3.1.6 |不要安装symfony/symfony v3。 1.0 - 不要安装symfony/symfony v3.1.0 |删除symfony/finder v3.1.6 - 不要安装symfony/symfony v3.1.0 |不要安装symfony/finder v3.1.6 - symfony的安装请求/ symfony^3.1 - > symfony/symfony [v3.1.0,v3.1.1,v3.1.2,v3.1.3,v3.1.4,v3.1.5, v3.1.6]可满足。 - symfony/finder的安装请求(锁定在v3.1.6,要求为^ 3.1) - > symfony/f inder [v3.1.6], symfony/symfony [v3.1.6]可满足要求。

安装失败,将./composer.json恢复为原来的 内容。

+1

启动一个新的symfony项目获得工作composer.json然后用作曲家需要添加额外的软件包,如Facebook的SDK。替换您的传统作曲家。与新的JSON,重新安装,然后开始工作你的方式,虽然你将面临的众多问题。除非您对Symfony有深入的了解,否则您可以更好地进行升级:2.2 => 2.3 => 2.7 => 2.8 => 3.1随着您的进展清除任何弃用通知。或者将您的旧版应用程序一点一点地复制到新应用程序中。 – Cerad

+0

谢谢,但这些对我来说很难,因为我是新手,但我想了解更多,有没有办法解决我与他们面临的所有错误? –

+0

我想你可以雇人。否则,你基本上不得不学习如何用Symfony框架进行开发。 – Cerad

回答

0

我做到了与php composer.phar self-update然后php composer.phar update成功更改为Symfony的2.8

+0

很高兴你做到了!一定要检查你的应用程序的弃用警告和错误。有些服务已经不存在了,而'2.8'与'2.2'相比,一些概念差别很大 –