我已经在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.
答案 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有一些向后兼容性中断。因此,请仔细阅读每个升级文档,以了解必要的代码更改。