======symfony 1.0 beta 1 通告====== 从上一个版本(0.7.1915)发布到现在已经过了很长时间了,对于最后一个稳定版(0.6.3)来说甚至更长。今天,我们非常高兴地宣布迈向1.0版的重要一步,1.0 Beta1, 要发布了。 =====新的特性===== 这个版本包括了几乎所有1.0稳定版的特性。 这里是一些自从0.6.3以后比较有趣的改变的摘录。 * **更加容易的安装和更大的兼容性**。 Symfony现在与magic_quotes_gpc设置成on还有php5.2是兼容的了。Pake和phing现在被绑定在核心类上,因此symfony不需要额外依赖。把一个symfony应用程序连接到一个symfony库上是非常容易的(通过config/config.php文件),并且PEAR不再是一个安装的先决条件。symfony命令行现在works out the box (for PEAR, SVN or .tgz). * **主要性能的提升**。代码的大部分已经被遵照提高性的思路重构过。根据不同的平台性能被提高了50%到500%。 * **新的插件系统**。 扩展symfony从未有过如此的容易。一个插件可以是类包,模块,助手,过滤器,网页部件,装置(fixtrues), 数据模型,单元测试等等。插件可以用一条命令来安装。查看[[http://www.symfony-project.com/trac/wiki/SymfonyPlugins|插件页]]可以看到一个可以使用的插件清单。 * **新的单元测试库**。Symfony现在捆绑了他自己的单元与功能测试框架,名为:lime, 此外还有一些自动测试工具例如sfTestBrowser和sfDomCssSelector类。Symfony本身含有超过2800个单元和功能测试从而保证了他代码的质量。 * **升级过的默认页**为显示error 404, error500, 不充分的资质(credentials),无效的网页,还有没有激活的应用(感谢justinm的设计)。这些网页不但比以前好看而且也非常容易定制。 * **更容易的模版制作**。组件(component)和组件槽(component slot)现在完美的工作与任何平台,甚至当缓存设置成on的时候。他们的代买已经被重构的更快更有效。最新的模版片段工具,叫做slots,比组件槽更快,而且不要求额外的文件和设置去给布局添加一个动态的区域。并且,蛋糕上的甜衣是, Ajax行为默认的并没有布局。 * **更好更灵活的模型层**。Symfony现在是ORM独立的:他默认情况下是和Propel绑定的,但是它能立刻与其他工具工作(例如, Doctrine)。数据库表现在可以用YAML来替代XML来写。持久性支持和特定的数据库编码现在被内在的支持。 * **新的mixin特性**。sfMixin类在php中引入了mixin,从而允许核心类的修改不需要继承,对已经存在的类添加新的方法,还有多重继承。 * **Propel类的新行为**。一个行为是一组属性和方法,它可以改变Propel产生的类。使Propel类可排序,添加一个悲观锁,或者是用is_deleted信号来改变删除,现在用行为只需要一行代码。 * **更用户友好的开发工具**。Symfony日志和网页调式工具条现在展示了更多关于时间和执行瓶颈的信息,这要归功于新的sfTimer类。Symfony命令行现在可以进行彩色输出(在*nix平台)。 日志机制(通过sfLogger类)更加灵活和易于扩展。日志交替和清除是自动的。 * **更加灵活的过滤(filter)系统**。用户过滤器可以在过滤器链里的任何地方注册(甚至在安全过滤器之前)。 * **新的多对多关系**现在在管理产生器中得到支持。 * **更容易部署**。freeze任务被实现并完全工作。他把一个symfony转化成一个自我包容的程序通过添加symfony库和组件。 * 升级了creole, Propel,script.aculo.us(1.6.5)和prototype(1.5.0_rc1) * 超过200个bug的修复和一点改进。 所有这些特色还没有全部编入文档,但是很快就会完成了。同样,对于熟悉0.6.3的开发员的指导和对于语法上改变的草案也会很快出版。在此期间,请参阅完整的[[http://www.symfony-project.com/trac/browser/trunk/CHANGELOG|changelog]]。 在此,我们感谢所有的贡献者和他们巨大的努力使这么多完整的特性得以发布。 =====什么是Beta1版===== 这次的发布被标上了“Beta”,因此他不是稳定的而且有一些已知的bug仍未修复。如果你对新 的特性有兴趣或是想帮助我们把beta 变成稳定版,请使用它。如果你计划开发一个真正的网络应用程序,你应该也使用这个beta版。 我们计划发布更多的beta版(名为Beta2,Beta3, 等等)当每次修复更多的bug使主干程序更加稳定的时候。除非我们在当前版本中遇到大的问题,我们将不再添加新的特点。每个特 性的添加需要先在邮件列表中讨论。我们可能在一个非常特定的领域打破beta1与接下来的版本的兼容性。 一旦我们满足了一个beta版发布,我们将为1.0发布一个候选版本(1.0RC1)。候选版本是特性冻结的,对于1.0的质量来说也是足够稳定的除非发现了bug,这是候选版本的目的。一旦我们发布了第一个候选版本,我将不再添加新的功能或是break BC除非有重大的安全隐患。 我们计划发布尽可能少的候选版本,但是你可能会看到一个候选版本1或是一个候选版本2在最终的1.0稳定版之前。 =====怎样升级===== 根据你安装symfony的方法,升级过程也是不同的。如果你通过PEAR安装的symfony,键入下面指令 pear upgrade symfony/symfony-beta 如果你使用的是从版本库里面检出的版本,浏览到你的symfony根目录,键入下面指令 svn update -r2872 最重要的事情是用symfony的1.0beta版去**升级所有的项目**。事实上,symfony1.0在某些部分打破了向后兼容性,但是项目的升级是完全自动和透明的。这个版本带有一个升级的脚本用来修改是symfony项目的代码使得它与symfony1.0兼容。为了升级项目,在你symfony项目的根目录下,键入下面指令 symfony upgrade 1.0 如果是PEAR安装,命令可能不工作。这样的话,你仍然可以使用脚本通过运行: php /path/to/pear/data_dir/symfony/bin/symfony upgrade 1.0 如果在升级中发现了问题,请汇报到[[http://www.symfony-project.com/forum/index.php/f/14/|专属论坛]] =====接下来的事情===== 我们非常希望1.0稳定版能尽快发布。我们的到越多的帮助,我们就能越快的到达目标。你可以在多方面予以协助: * 测试beta1版并递交bug报告 换句话说:如果你明确的描述了一步接一步的情况去重现bug,我们将更多的关注它。如果,你还附加了功能性测试去自动重现它,还有针对主干程序的一个补丁。那么这个bug有可能在48小时之内被修复。 * 贡献单元测试 单元测试是非常容易写的。Beta1版已经有了2800个单元和功能性测试,他们将是一个很好的例子用来做那些没有被覆盖到的地方测试的参照。而且我们是非常感激这些帮助的。 * 贡献文档 你可能注意到了主干文档并没有跟上最新功能的更新。我们将尽我们最大的努力去把所有的事情编入文档,但是同样,任何帮助是欢迎的。 对于测试和文档编写,请在邮件列表里面声明你想工作的领域,不要重复工作。然后用一个附加在报告上的补丁递交你的工作(请不要直接在主干程序上递交,也不要用电子邮件发送代码)。 =====我们需要你===== 请帮助我们尽快地发布1.0稳定版。我们确实需要你!