2016-11-19 63 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'相比,一些概念差別很大 –