为什么Symfon欧宝娱乐app下载地址y 2.0最终会使用PHP 5.3?
框架枪战
您可能知道,我刚从2009年的Zend会议回来。我已经博客关于会议,但我故意忘记谈论框架枪战。这是因为我觉得有必要思考我在会议期间和会议结束后得到的反馈,并且我想在进一步讨论之前,与Symfony核心团队一起成熟我的反思。欧宝娱乐app下载地址
Zend会议以一个框架结束,而不是一个经典的闭幕主题演讲枪战.舞台上展示了几个框架,主要由它们的首席开发人员代表,观众有机会提出任何他们想问的问题。其中一篇是关于PHP 5.3的,以及每个框架将如何过渡到这个最新最好的PHP版本。
Symfo欧宝娱乐app下载地址ny 2.0会与PHP 5.2兼容吗?
即将到来的Zend Framework和CakePHP 2.0版本都将依赖于PHP 5.3。对于Symfon欧宝娱乐app下载地址y,我说过它仍将与PHP 5.2兼容。从我当时的观点来看,现在将主要框架升级到PHP 5.3是一个错误,主要原因是:许多大公司都在使用主要框架,在这些公司中快速升级到软件的最新版本并不总是可行的。senseno为他们中的很多人工作,我们知道我们在谈论什么。不,我们的一些客户不能“简单地”编译他们自己的版本,因为他们依赖于标准的Linux发行版及其相关的专业支持;或者因为他们有数百台机器,不想为某些项目安装特定版本的PHP。如果你参加了主题演讲,不要生气,继续读下去。
显然,很多人对这个决定很失望,所以我又开始思考这个问题。大约一年半以前,我决定在Symfony 2.0中仍然支持PHP 5.2。欧宝娱乐app下载地址在那个时候,只支持PHP 5.3显然是不可能的,我认为Symfony 2.0很快就会出现。欧宝娱乐app下载地址时间过得真快,Symfony 欧宝娱乐app下载地址2.0还远没有准备好。
那么,既然PHP 5.3现在已经稳定并发布了,而Symfony 2.0肯定不会马上发布(可能在2010年底),那么继续支持PHP 5欧宝娱乐app下载地址.2还有意义吗?还是我们需要重新考虑我的决定?
正如这篇文章标题所暗示的,Symfony核心团队已经改变了主意欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony 2.0将利用PHP 5.3,放弃PHP 5.2兼容性.我希望你们中的一些人现在感觉好多了,但我已经听到有些人开始抱怨了。请容忍我们,因为这一决定不是一夜之间做出的。继续阅读这篇文章,了解这一决定背后的原因。
欧宝娱乐app下载地址PHP 5.3上的Symfony 2.0:更好的语言
从技术角度来看,在Symfony 2.0中使用PHP 5.3是个好消息。欧宝娱乐app下载地址欧宝app在哪里找首先,因为这门语言已经进化了,并且有了很多令人兴奋的新特性,比如名称空间、闭包、匿名函数、后期静态绑定、SPL增强、更好的Windows支持等等。PHP 5.3也是有史以来最快的PHP版本,这对于像框架这样复杂的野兽来说是一个很大的好处。
欧宝娱乐app下载地址PHP 5.3上的Symfony 2.0:更好的工具
PHP 5.3也是一个新的生态系统。工具越来越好。旧的PEAR安装程序(用于管理symfony插件的安装程序)正在逐步淘汰并被欧宝娱乐app下载地址Pyrus,一个现代化和强大的软件安装程序。欧宝娱乐app下载地址Symfony 2.0肯定能够利用这个新工具并利用原生的优势phar支持提供简单和更好的插件管理工具。
说到工具和第三方库,让我们谈谈我们在Symfony中本机使用的那些工具和第三方库。欧宝娱乐app下载地址
首先,我们最爱的教义ORM。作为不久前宣布的Doctrine 2.0将只与PHP 5.3兼容。伙计,教条2.0太棒了。2.0原则是PHP在很长一段时间内发生的最好的事情之一。
然后是Zend框架。欧宝娱乐app下载地址Symfony的核心功能并不依赖于Zend Framework,但大量的Symfony开发人员在他们的Symfony项目中使用了一些Zend Framework组件(添加搜索引擎、连接到一些知名的web服务、动态创建PDF文档等等)。当然,使用新的Zend Framework 2.0组件将要求我们共享相同的需求。
使用PHP 5.3是为了更好地与下一代框架、工具和第三方库进行开箱即用的集成。
欧宝娱乐app下载地址Symfony 2.0在PHP 5.3上:帮助社区欧宝下载链接
最后但并非最不重要的是,它还有助于PHP社区。欧宝下载链接欧宝娱乐app下载地址Symfony是第一个加入“去PHP5的倡议,当时社区试图帮助人们更快地采用PHP5。欧宝下载链接
采用率问题可能是让我们更容易做出决定的原因。正如一些人在Twitter上和主题演讲中所说,如果所有主要的PHP框架和库在下一个主要版本中开始使用PHP 5.3, Linux发行版、第三方工具(ide,…)和公司可能需要更快地接受新版本。如果Symfo欧宝娱乐app下载地址ny能在这方面提供帮助,我们将非常高兴。
当然,我们不会在一夜之间改变红帽的计划。他们有一个非常严格的路线图,由于他们的长期支持,他们不会很快升级到最新的PHP版本;但如果一些公司使用这些保守的Linux发行版之一,他们也会对他们使用的框架版本持保守态度。对于这些公司来说,欧宝app在哪里找好消息是symfony 1.4将维持整整三年(见下文)。欧宝娱乐app下载地址
即将推出的Zend Server中对PHP 5.3的本地支持也缓解了Linux发行版问题。如果公司认真对待PHP支持,他们也可以切换到Zend服务器,并获得对PHP 5.3的开箱即用的支持。
欧宝娱乐app下载地址Symfony 2.0在PHP 5.3上:向后兼容
由于S欧宝娱乐app下载地址ymfony 2.0无论如何都要打破向后兼容性,Symfony核心团队认为最好是一劳永逸地打破向后兼容性,避免在未来几年再次出现重大的兼容性破坏,从而最终支持PHP 5.3。
切换到PHP 5.3意味着放弃对PHP 5.2的支持,转而拥抱PHP 5.3的新特性,比如名称空间。这意味着所有的Symfony库(从M欧宝娱乐app下载地址VC框架到Symfony组件)都需要一些剧烈的改变,比如重命名每个类(重命名)sfRequest
来欧宝娱乐app下载地址symfony \ \核心要求
例如;向美好的过去说再见科幻小说
前缀)。对于我们已经发布的组件,比如依赖注入容器,我们将很快创建一个1.0分支并发布1.0版本。然后,该中继将开始新的生命,并被迁移到PHP 5.3。
但是我们绝对不希望失去那些无法升级到PHP 5.3的用户。由于Sy欧宝娱乐app下载地址mfony的长期支持(Long Term Support, LTS)版本,它在应对这种剧烈变化方面处于非常有利的位置。欧宝娱乐app下载地址Symfony 1.4,将于今年年底发布,是我们即将发布的LTS版本。与任何Symf欧宝娱乐app下载地址ony LTS版本一样,它将由Symfony核心团队维护三年。具体来说,使用这个版本的开发人员将拥有支持至2013年初.对于那些还不能迁移到PHP 5.3的项目来说,这有足够的时间。请记住,维护包括与新PHP版本的向前兼容性。欧宝娱乐app下载地址Symfony 1.3/1.4已经适用于PHP 5.3.0,并将适用于即将到来的5.3。X个次要版本。
结论
总之,我们决定两全其美:
欧宝娱乐app下载地址Symfony 1.4(支持到2013年初)将是现有项目和保守公司的最佳版本。
欧宝娱乐app下载地址Symfony 2.0(可能将于2010年底发布)将是新项目和愿意安装PHP 5.3、使用Zend Server或安装“正确的”Linux发行版的公司的最佳版本。
我希望大家能够理解并批准这一举措。Symf欧宝娱乐app下载地址ony核心团队对它给我们带来的机会感到非常兴奋,我们认为Symfony 2.0发行版将是一个爆炸。祝我们好运!
感谢Symfony核心团队的成员Kris Wallsmith、Fabian Lange、Jonathan Wage、Dustin Whittle和Stefan Koopmanschap,他们帮助我彻底成熟了我的决定,并审阅欧宝娱乐app下载地址了这篇博文。
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
谢谢Fabien的努力。
我很高兴听到你的观点,当然也觉得你做的是对的——无论你做哪一个决定都会受到批评,但你的观点相当可靠。
欧宝娱乐app下载地址Symfony必须保持创新,你选择了一个好的选择。
关于现有项目的symfon欧宝娱乐app下载地址y 1.4 LTS,考虑到1.4不支持1.0的东西的数量,我不能如此热情……
我认为这是一个正确的决定。我同意你关于一些大大小小的公司在5.3上的升级路径的观点,但就像在枪战中所说的那样,我同意PHP社区和开源项目是这些升级发生的驱动力。欧宝下载链接如果在接下来的2-3年内没有人采用5.3,我们就会遇到和现在一样的问题。
目标应该是保持代码的简单和干净,但就我所见,脚本变得冗长而糟糕。我只是希望这种情况只发生在核心symfony文件上,而不是发生在开发人员编写的文件上。欧宝娱乐app下载地址这将是一个巨大的#失败(操作,这不是twitter:))
话虽如此,看看他们之前的发布历史(http://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux#Version_history),他们会立即更新,但我没有听到任何关于这个方向的消息。
1.4是否向后兼容1.2?显然不是没有丑陋的1.0。
@tayhimself: http://www.欧宝娱乐app下载地址symfony-project.org/blog/2009/08/06/about-symfony-1-3-and-symfony-1-4
我们正在削减“很多”,以支持3年的“干净”版本。如果你认为在那里列出的错误,请在开发人员邮件列表讨论。
如果你真的需要一个被弃用的特性,但没有人认为它应该被支持,你可以自由地获取代码并将其用于你的应用程序(作为插件?)
虽然PHP 5.3已经出来了,但我不能像我喜欢的那样使用它,因为我管理和维护的所有项目都使用Symfony 1.2或一个小版本,那么,我仍然受制于PHP 5.2。欧宝娱乐app下载地址
有了这个消息,现在我欧宝app在哪里找确信我将使用Symfony 2.0和PHP 5.3,最欧宝娱乐app下载地址终在我的日常工作中拥有名称空间和我心爱的闭包:D的强大功能!!
核欧宝娱乐app下载地址心\ \ symfony \请求吗?
PHP社区可以从欧宝下载链接Ruby社区接受新版本的敏捷性中学到很多东西。有些人仍然在PHP4中进行主要开发,这让我感到恶心!!
如果你让人们说我还没有准备好升级,那么人们永远都不会准备好。如果你告诉他们在约会前准备好,那么你更有可能让人们跟随你。如果他们不想继续前进,他们的问题从一开始就没有多大帮助。
观众怎么样?
希望你用交响乐打动了观众。欧宝娱乐app下载地址
不管怎样,这也是个好决定。