从symfony 2.0升级到2.3

时间:2013-06-19 11:51:17

标签: symfony upgrade symfony-2.3

我已经在Symfony 2.0.10中运行了项目。但是现在我需要将它升级到Symfony 2.3。我知道需要更改一些代码以便与最新版本兼容。是否有任何升级命令?或者升级的具体步骤是什么?有没有可用的文件?

修改

我放了symfony 2.3 composer.json个文件,在执行php composer.phar update时遇到了这个错误。

Problem 1
    - symfony/symfony v2.3.1 requires symfony/icu >=1.0,<2.0 -> no matching package found.
    - symfony/symfony v2.3.0 requires symfony/icu >=1.0,<2.0 -> no matching package found.
    - Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0, v2.3.1].

编辑2: 首先我得到了这个错误:

[InvalidArgumentException]                                                                                
  The dist file "app/config/parameters.yml.dist" does not exist. Check your dist-file config or create it.

所以我创建了parameters.yml.dist文件。 现在我来了

PHP Fatal error:  Class 'Symfony\Component\ClassLoader\UniversalClassLoader' not found in /var/www/git/sample/app/autoload.php on line 6
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-update-cmd event terminated with an exception

  [RuntimeException]                                     
  An error occurred when generating the bootstrap file.  

2 个答案:

答案 0 :(得分:16)

升级信息

阅读symfony/symfony github repository中的升级指南:

存储库中还有更改日志:

备份你的项目!


使用编辑器进行升级

获取composer并将 symfony 2.3标准版composer.json 放入项目根目录。

现在以项目的补丁作为工作目录运行composer update

- &GT;由于突破性更改异常,您将面临一些例外情况。谷歌将帮助解决这些问题:)


个人经历

在我的遗留项目中,从2.0到2.1的最明显的bc中断是this one与表单构建器相关,因为我必须更新每个表单。

之前(2.0)

use Symfony\Component\Form\FormBuilder;
public function buildForm(FormBuilder $builder, array $options)

之后(2.1+)

use Symfony\Component\Form\FormBuilderInterface;
public function buildForm(FormBuilderInterface $builder, array $options)

答案 1 :(得分:4)

升级通常很简单,因为您只需根据standard distribution更新composer.json中的版本约束并发布

php composer.phar update

但2.3有一些向后兼容性中断。因此,请仔细阅读每个升级文档,以了解必要的代码更改。