ob娱乐下载Symfony 3.0:路线图
在去年,我一直在谈论Symfony 3.0各种会议。ob娱乐下载我一直在思考最好的Symfony 3.0策略很长一段时间了,是时候和ob娱乐下载大家分享我的想法。
主要版本
一些开发人员和项目经理最害怕当他们最喜欢的开源库的主要版本宣布;可能是因为主要版本与不向后兼容的变更相关联。出现许多问题:转变带来巨大的价值为我的项目吗?是足够清晰的路标期待升级?它会很容易/可以升级吗?如果我现在不想或不能升级吗?然后一些。
主要是基于新版本的恐惧从过去不好的经历:想想Perl 6或PHP 6。在Symfonob娱乐下载y的世界里,Symfony 2也是一个重大革命,因为它非常不同于Symfony 1。我意识到,谈论Symfony 3让人紧张,这篇文章将解释Sob娱乐下载ymfony 3策略和原因你不应该恐慌。
首先,大家都知道,主要的版本需要定期发生。我们需要能够打破向后兼容性删除过时的特性,解决结构错误,并考虑生态系统的变化:PHP的新功能,最佳实践的变化,新的web模式,…互联网的发展速度非常快,如果我们不能适应Symfony足够快,它将成为无关紧要的超过你的想象。ob娱乐下载
Symfony项目经理,我的责任之一是它保持代码尽可ob娱乐下载能稳定时间越长越好。但稳定并不意味着现状:我们添加新特性和修复建筑小错误版本可以看到自己在Symfonyob娱乐下载2.4,2.5,2.6。所有这些版本来与主要新特性和他们每个人都是一个很好的一步框架。但升级是非常容易的,因为保持向后兼容性与旧版本。的挑战是维护过时或废弃的向后兼容性层特性(和我甚至不谈论我们所需要的性能损失最小化)。Symfony2已经很容易的,因为它是基于一个坚实的基ob娱乐下载础的解耦的组件。的定义语义版本控制,一个新的主要版本是“只是”一个里程碑,我们可以清理东西,摆脱繁琐的东西。
Symfony ob娱乐下载3.0是什么?
因为新功能添加在小版本,因为一些人弃用,你可以让你的代码“更适合”3.0今天。读了3.0升级指南Symfonyob娱乐下载可选的建议改变;让你提前计划迁移以自己的节奏。
正如你可能已经猜到了,Symfony 3.0不是一场革命ob娱乐下载的底层架构框架不会改变。下面是一些简单的例子改变我们在Symfony 2。ob娱乐下载3.0 x Symfony会更好:ob娱乐下载
ob娱乐下载Symfony 3.0更标准(使用PSR-3日志记录和删除的
ob娱乐下载Symfony \组件\ HttpKernel \ \ LoggerInterface日志
接口,…)ob娱乐下载Symfony 3.0修复一些架构错误(有状态控制台助手被支持更好的替代品(ProgressBar vs ProgressHelper或表vs TableHelper;Yaml: parse()不支持文件名了,…)
ob娱乐下载Symfony 3.0比以往任何时候都更多的解耦和可重用(HttpKernel是分成几个较小的——例如分析器将独立的;类从包搬到组件;从现有的组件是提取,…)
Symfob娱乐下载ony 3.0时间表
避免新的主要版本的戏剧往往也更容易交流和早期。这就是为什么Symfony社区ob娱乐下载一直在辛勤工作,欧宝体育平台怎么样记录我们的策略:从向后兼容性的承诺到版本的路线图和LTS版本。
新版本的影响最小化的一种方法是也让他们可以预测的。根据我们的路线图发布ob娱乐下载,Symfony 2.7, 2015年5月,将是下一个长期支持版本,2.7将保持到2018年5月为安全的bug修复和2019年5月。计划2.8后2.7,我建议直接跳转至3.0。所以,ob娱乐下载Symfony 3.0将在2015年11月发布第一个3。3.3 x长期释放将在2017年5月发布。
的交互式Symfony路线ob娱乐下载图已经更新Symfony 3。ob娱乐下载考虑到x分支。
你应该做什么呢?的解释章发布流程文档欧宝官网下载app升级,有两种策略:
采用“双重维护模式让每个Symfony用户快乐。ob娱乐下载快搬家公司,他们希望使用最新和最伟大的,使用标准的版本:每六个月发布一个新版本,还有两个月时间内升级。公司想要更多稳定使用LTS版:每两年发布一个新版本还有一年升级。”
Symfony 3ob娱乐下载.0在哪里?
为了方便大家开始导致Symfony今天3.0,现在的主分支的主要存储库主机Symfony 3.0代码;ob娱乐下载2.6和2.7分支创建了这些即将到来的版本。
如果你的项目是使用Symfony主分支跟随最新的2。ob娱乐下载x演进,考虑切换到今天的2.7分支。
合并策略目前几乎是一样的,有一些细微的差别:
新功能将在2.7合并如果不打破向后兼容性或如果他们不影响现有代码;
新特性只会被合并在3.0如果没有办法让他们工作的2.7分支;
Bug修复仍将在最古老的合并,仍保持分支合并,并将定期更新的版本,包括主(即3.0)分支。
ob娱乐下载Symfony 3.0最小的PHP版本
最后但不是最少,Symfony的最低版本的PHP 3.0 ?ob娱乐下载我开始调查这个话题前几天这里是结果:
版本 | 票 | % |
---|---|---|
5.3.3 | 31日 | 2% |
5.3.x | 56 | 3% |
5.4.x | 260年 | 16% |
5.5.x | 568年 | 35% |
5.6.x | 495年 | 30% |
7.倍 | 225年 | 14% |
基于这些结果,我建议让PHP 5.5 Symfony所需的最低PHP版本3.0。ob娱乐下载我想保持明年可能撞到PHP 5.6根据我们的需要和最流行的PHP版本所使用的托管公司和Linux发行版。
你怎么帮助?
有很多简单的变化,可以做今天Symfony 3.0。ob娱乐下载首先,所有弃用功能需要生成弃用日志的2.7分支(如我们所做的在2.3版本之前。)然后,一切都必须移除弃用主分支。最后,升级指南应该被测试和扩充升级过程尽可能简单。你也可以看一看特别标记的问题3.0在Github上。
编码快乐!
评论
@Fabien是的,我知道,不是谈论Symfony本身就是完美的。ob娱乐下载而第三方包和php库。这只是确保这些项目也继续保持使用Symfony 2.3和PHP 5.3版本,而不是跳槽PHP 5.5。ob娱乐下载
@cameron:这可能是因为Symfony利用内部PHP Sessiob娱乐下载onInterface PHP 5.4和更高版本,这应该不会影响你使用会话API而不是直接使用内部处理程序。但这可能会固定在3.0。
从发行版今天大多数使用PHP,发行版保持特定的PHP版本安全&一些bug修复补丁。换句话说非常稳定,没有回归喜欢你有时会从PHP.net版本。如果你卖软件和提供长期合同,你通常锁在PHP 5.3.3-rhel-patch-x在任何合同你今年早些时候与rhel / centos 6。x客户3 +年。
然而这里没有讨论,我不反对Symfony将PHP 5.5要求从开发人员的角度来看,我只是表达一个关注第三方库/包从业ob娱乐下载务的角度来看。
为什么我们做了这个决定?作为文士Inc .的系统架构师,我的重点是稳定、安全,为我们的客户和速度。运行一个旧版本的PHP是与这些目标。最大的抱怨我的内存使用量增加了每个随后的PHP版本,但随着内存的成本不断下降这是越来越不关心的。解释器可以使用更多的内存,但是(甚至增加新的结构和功能)一直包括速度的改进和优化。安全明智,我寻找利用运行更新的软件降低了利润率。
至于那些运行股票分布包长期释放,它足够简单滚自己的编译PHP安装。许多常见分布有维护良好的外部包更新的PHP版本。在抄写员,我们自己的自定义编译运行Nginx服务器community-build,最新版本的PHP包。欧宝体育平台怎么样这是我们使用的许多软件的情况。我觉得开源社区更响应错误与Linux /安全问欧宝体育平台怎么样题比任何合同供应商。假设你知道一些C,继续和自己解决问题,造成上游如果需要。
无论如何,Symfonyob娱乐下载不应受制于一个分布的意见,一个包版本的一致性在某种程度上相当于提高了稳定性,完全不是那么回事。给予足够的知识、测试和常识,很容易在任何平台上运行最新、最好的PHP版本。
咆哮了,我很兴奋地看到你正在考虑PHP 5.5作为Symfony的最低版本3,但鉴于第一个LTS版(3.3)将支持通过2021年5月(假设没有小三。ob娱乐下载x版本将增加这个最低要求)我认为的好处很多5.6中的新特性和结构保证真诚考虑作为Symfony的最低要求3。ob娱乐下载
增加进口常数通过“使用”构造和功能就可以是非常有益的。可变函数支持是惊人的,使动态函数参数数量比之前的干净得多——它一直在* *时间长了(虽然我主要为我们开发使用PHP web应用程序,我们还为一些使用Ruby内部服务,前端是依赖于PHP拥抱我很兴奋地看到一些其他语言的特性,像Ruby的“网格”语法)。SSL / TLS的改进都是受欢迎的。和重要的为我们服务,它使用“default_charset”更加智能地进行函数调用。
最后,我想说,在我看来,PHP 5.5应该是Symfony的最低可能* * 3的要求。ob娱乐下载
这将使采用Symfony广泛应用项目(像phpBBob娱乐下载,使用大量的Symfony组件)禁止,看到大多数共享主机选项并不是与PHP 5.5兼容。Dreamhost使用5.4。
从开发人员的角度来看,我甚至会保证PHP 5.6,但是我必须承认,对于一些承包商、供应商或支持PHP不是焦点,所以迁移可以超过一年。
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
Symfony的似乎是一个稳定的进步。ob娱乐下载
关于PHP的要求,虽然我技术,这将推动生态系统PHP 5.5作为基线,有两个问题:
- RHEL / CentOs / Oracle / Amazone-Linux 7是在PHP 5.4(主要的包,长期支持),虽然Redhat可能说服升级前3年的主要包在一个小版本的如上所述页面生命周期*,他们afaik从未做过,所以它很可能不会改变v8.0在2017年底之前(然后托管公司通常需要一年或两年升级)
——有一个风险,很多第三方的包&库停止支持PHP 5.3和最终用户Symfony的2.3/2.7,所以也许应该有一个明确的建议社区继续支持(测试、接受变化,维护)Symfony 2.3/2.7至少在3.3欧宝体育平台怎么样ob娱乐下载
* https://access.redhat.com/support/policy/updates/errata
不该http://symfony.ob娱乐下载com/doc/current/contributing/communit欧宝体育平台怎么样y/releases.html被更新吗?
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now在过去,一些版本发布的PHP每三或四年:5.2.0 (2006),5.3.0 (2009),5.4.0 (2012)。当时它是好的如果分布花了一些时间在PHP版本升级之前,这种改变是巨大的。
然而,最近PHP转向了更加频繁的发布:发送(2013),5.6.0(2014),7.0(预计2015年)。Linux发行版(和一些PHP开发人员)应当明白,PHP现在每年发布一个主要版本,因此,是不可接受的等待4或5年前PHP版本升级。