【发布时间】:2017-02-07 11:44:31
【问题描述】:
我是 Symfony 的新手,我正在考虑将一些捆绑包集成到我的应用程序中,但我找到的所有捆绑包都是针对 Symfony 2 的。2/3 有多大不同,我可能会遇到什么样的问题当我整合它们?
例如,我正在考虑使用这个:http://knpbundles.com/sonata-project/SonataAdminBundle
但它只对 Symfony 2 有效,我不想花时间尝试集成它并遇到不兼容问题。
【问题讨论】:
我是 Symfony 的新手,我正在考虑将一些捆绑包集成到我的应用程序中,但我找到的所有捆绑包都是针对 Symfony 2 的。2/3 有多大不同,我可能会遇到什么样的问题当我整合它们?
例如,我正在考虑使用这个:http://knpbundles.com/sonata-project/SonataAdminBundle
但它只对 Symfony 2 有效,我不想花时间尝试集成它并遇到不兼容问题。
【问题讨论】:
我会尝试提供一个答案,尽管这个问题很差,因为它太宽泛了。
当然,除非在可用的官方文档中明确说明,否则基于 Symfony 的捆绑包将在哪个 Symfony 版本中工作并没有一般规则。
几个迹象:
检查您的捆绑包的 CHANGELOG、README 等文件。例如。在 SonataAdminBundle 的 CHANGELOG 中,您会发现很多关于 Symfony > 3.0 的更改和错误修复 - 因此这强烈表明支持 Symfony > 3.0。
检查包的 composer.json,如果有的话。可能需要 Symfony,您可以找到一个 semver 版本。例如。对于 Sonata Admin 包,composer.json 中需要很多 Symfony 组件。它们都声明如下:"symfony/class-loader": "^2.3 || ^3.0",这意味着它至少需要 Symfony 2.3 或 3.0 - 再次强烈表明它将与 Symfony > 3.0 一起使用。
但最后:依赖管理是一个老问题,你必须检查一下。
【讨论】:
大多数 Symfony 2.8+ 捆绑包都可以与 Symfony 3 一起使用。Symfony 3 与以前的版本没有太大区别。
您可以轻松检查 Bundle 是否与 Symfony3 不兼容,在版本 2 上启用它,然后使用分析器查找弃用。
[...] 您可以轻松地使用从 sf2 到 sf3 的捆绑包,但在处理此捆绑包的功能时,如果不升级此捆绑包,迁移可能无法正常运行。在 sf3 中正确运行 bundle 中的修改不是很重要。但是,是的,迁移很容易,但不是自动的。在这一点上发出警告并阅读有关哪个捆绑包以了解该捆绑包与 sf3 的技术层一起使用,以及是否对运行到 sf3 的代码进行了少量更改。
【讨论】: