Zend Framework 1.11.0 发布

原文见:http://devzone.zend.com/article/12724-Zend-Framework-1.11.0-FINAL-Released

Zend Framework 团队很高兴宣布:Zend Framework 1.11.0 版本已经放出并且可用。这个版本是 Zend Framework 贡献者和合作伙伴经过几个月努力达到的成果,同时提供了一些新的特性,包括对移动设备的支持,以及第一个稳定的 SimpleCloud API 版本。

你可以从以下地址下载这个最新的版本:

http://framework.zend.com/donwload/latest

以下是对1.11.0版本新特性和功能的总结。

移动支持

Zend Framework 1.11.0 通过使用新的组件:Zend_Http_UserAgent,成为第一个明确支持移动设备的版本。这个组件由 Raphael Carles 开发。Carles 是 Interakting 公司的 CTO,Interakting 是法国商务和决策集团的电子公司。Interakting 雇佣了150名 PHP 专家来构建工业 PHP 项目,它的客户包括 Canal +/Vivendi(维旺迪(Vivendi SA;又译威望迪)前名为维旺迪环球(Vivendi Universal)是法国一家巨型媒体跨国集团。业务范围包括音乐、电视、电影、出版、电信、互联网和电子游戏等行业。),BNP Paribas(法国巴黎银行),三星法国,法国教育部,Alapage(Orange),Orange 突尼斯,以及更多。由此,他们在移动设备支持方面经验丰富,并且决定在这个他们擅长的领域内为 Zend Framework 的发展贡献一份力。

Zend_Http_UserAgent 有两个责任:

  • 探测客户端浏览器
  • 在客户端浏览器基础之上,探测移动设备功能

组件包括一个“特性”适配器机制,通过这个机制,允许开发者出于发现移动设备功能的考虑,把组件绑定到不同的后台。目前为止,Zend Framework 内置了 WURFL(Wireless Universal Resource File 无线全球资源文件)API,Tera-WURFL 和 DeviceAtlas 等的接口,将来计划更多。

Luca Passani,WURFL 项目的作者和领导者,已经为 Zend Framework 提供了一份 non-GPL 接口来访问 WURFL PHP API。

对这个组件要增加额外的外挂,需要通过 Zend_Application 的资源插件来达到。同时一个 Zend_View 助手,将允许开发者可以为已经探测到的移动设备返回不同的输出结果(例如,不同的模板,不同的图片,Flash 和 HTML5 支持,等等)。

Zend_Cloud:SimpleCloud API

在 Zend 2009 大会中,Zend 宣布了一个 SimpleCloud API 的模型。这个 API 打算用来挂钩到云基础的文档储存,队列支持,文件储存。

Zend Framework 1.11.0 成为第一个正式的 Zend_Cloud 的稳定版本,SimpleCloud API 的 Zend Framewok 的 PHP 版本。目前包括以下支持:

  • 文档服务:
    • Amazon SimpleDB
    • Windows Azure 的 Table Storage
  • 队列服务:
    • Amazon Simple Queue Service (SQS)
    • Windows Azure 的 Queue Service
    • Zend_Queue 支持的所有接口:
      • Zend PlatForm JobQueue
      • Memcacheq
      • 关系数据库
      • ActiveMQ
  • 储存服务:
    • Amazon Simple Storage Service (S3)
    • Windows Azure 的 Blog Storage
    • Nirvanix
    • 本地文件系统

当使用任何一个 SimpleCloud API,你的代码将会在大量已提供的适配器中是可移植的,这将允许你选择你的服务,同时尝试不同的服务,直到你找到适合你的应用程序或者商业需求的服务为止。另外,如果你发现你需要编写特定适配器特性的代码,为了达到这个目的,你可以放弃指定的适配器。

在稍后的几个月,将会有更多的适配器,给你更多的选择。

我们感谢 Wil Sinclair 和 Stas Malyshev 在 Zend_Cloud 初次发布过程中所提供的帮助。

安全

Zend Framework 中的几个类已经被改写,从而消除了在直接比较敏感数据诸如文本密码或者用户输入的密码签名等等过程中导致的时间信息泄漏的潜在风险。这些漏洞在 PHP 比较任意两个字符串的正常过程中都会发生。泄漏的本质是:字符串比较通常是按字节比较的,当任意的一组不匹配的字节被检测到的时候,将会迅速的返回一个负面结果。当被比较的双方相同的字节越来越多的时候(从第一个字节开始),返回最终结果所花费的时间就越长。根据返回一个正面或负面结果的时间长短,一个攻击是有可能,通过许多请求样本,精心制作一个字符串与秘密字符串比较返回正面结果的字符串,这个秘密的字符串的值,是目标服务器简单的在一个时间内通过猜测这个字符串的一个字节,然后测量每一次猜测的执行时间。这个服务器的秘密有可能攻击者想要执行一个请求是一个文本密码或者正确的密码签名,例如用于几个开协议诸如 OpenID 或者 OAuth。这显然使一个攻击者赢得足够的信息来执行诸如伪装受权用户等的二次进攻。

这种形式的攻击被称为远程时间攻击(Remote Timing Attack)。时间攻击在过去是个大问题,但在如今的互联网上去很难执行,因为网络的抖动干扰,在很小的时间内解析不同的努力被限制了。然而互联网仍然拥有挑战成功对远程服务器执行时间攻击。在本地网络和云计算上不断增加的使用框架,网络抖动可能会显著减少,使得远程时间攻击的可能性增加甚至是更小的时间信息泄漏,诸如比较任意两个字符串导致的泄漏。作为一个预防措施,相应的改变应用了一个固定的比较时间对于一些类,这些类是在任何潜在远程时间攻击中有吸引力。一个固定的比较时间功能不会泄漏任何对于一个攻击者可利用的时间信息,这样阻止了任何将来这种攻击的风险。

我们感谢 Padraic Brady 在鉴别和修改这些漏洞方面的努力。

安全这部分,翻译得很乱,主要是一些理论上的东西,所以不懂其实也没多大关系,知道改写了几个类,加强了安全系数,就可以了。具体哪几个类,Zend Framework 团队也没有具体指出来。

Dojo 支持

Zend Framework 的默认 Dojo 工具包的版本已经跳到1.5.0版本,它包括一个新的 dojox.mobile 组件,一个服务于客户端移动应用程序的简单框架。

SimpleDB 支持

Zend Framework 已经在好几个版本中提供了对 Amazon Simple Storage Service(S3),Simple Queue Service(SQ3),以及 Elastic Cloud Compute(EC2)平台的支持。Zend Framework 1.11.0 为 SimpleDB 添加了支持,SimpleDB 是 Amazon 提供的非关系文档储存数据库服务。该支持通过 Zend_Service_Amazon_SimpleDb 对 SimpleDB 的所有操作提供支持。

Zend Framework 的 SimpleDB 适配器原先是由 Wil Sinclair 所写。

eBay Findings API 支持

eBay 有一个扩展的 REST API,允许开发者创建应用程序从而与 eBay 的扩展数据互动。Zend Framework 1.11.0 包括了 Zend_Service_Ebay_Findings,它为 eBay Findings API 提供了全面的支持。这个 API 允许开发者使用目录和关键字查询正在进行的 eBay 拍卖细节。

Zend_Service_Ebay 是由 Renan de Lima,Ramon Henrique Ornelas 和 Don Bosco Nguyen Van Hoi 贡献的。

MariaDB 兼容

Zend_Db 的 mysql 和 Pdo_Mysql 适配器现在是完全兼容 MariaDB,相关文档已经被更新来反映关于 MySQL 可配置选项。

新的配置格式

Zend_Config 在 Zend Framework 是一个很受欢迎的组件,它提供了 PHP 数组,XML 和 INI 配置文件等等的适配器。Zend Framework 1.11.0 现在提供两个额外的配置格式:YAML 和 JSON。

Zend_Config_Yaml 提供了一个很初步的 YAML 解析器,它应该可以和绝大多数的配置格式正常工作。然而,它还允许你指定一个不同的 YAML 解析器,如果你想这样做的话。允许您撬动不同的工具,诸如 PECL 的 ext/syck 或者 Symfony 的 YAML 组件,sfYaml。

Zend_Config_Json 改变了 Zend_Json 组件,通过扩展 ext/json。

这两个适配器都支持 PHP 常量,同时提供了在配置对象基础上写入配置文件的功能。

Stas Mylsshev 为 Zend Framework 创建了这两个适配器;Zend_Config_Json 同时还得到了来自 Sudheer Satyanarayana 的帮助。

URL 缩短

Zend_Service_ShortUrl 在这个版本中被添加了。这个组件为使用绝大多数的 URL 缩短服务提供了一个简单接口,通过简单的定义 shorten 和 unshorten 方法。这两种服务的适配器,http://jdem.cz 和 http://tinyurl.com,在这个版本中被提供。

Zend_Service_ShortUrl 由 Martin Hujer 贡献。

额外的视图助手

一些新的视图助手如下:

  • Zend_View_Helper_UserAgent 和 Zend_Http_UserAgent 密切相关,细节见上。它给你访问 UserAgent 实例,允许你检索相关的移动设备和功能。
  • Zend_View_Helper_TinySrc 是一个 Zend Framework 1.11.0 移动功能的额外部分。这个助手和 TinySrc API 密切相关,允许你(a)为你的网站提供和移动设备相适应的图片尺寸和格式,同时(b)从这个第三方服务中卸载这些图片。这个助手创建 img 标签指向该服务,同时提供指定自适应尺寸和格式的选项。
  • Zend_View_Helper_Gravatar 与 Gravatar API 相关,允许你为注册用户提供 avatar 图片来使用 Gravatar 服务。这个助手由 Marcin Morawski 贡献。

感谢你们

我们想感谢无数的贡献者,他们使得 Zend Framework 1.11.0 成为可能。超过200个问题和特性要求在这个版本的准备阶段被关闭了。反映出无数贡献者对这项目的努力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章