background image

PHP 

 

框架,第 部分: Ajax 支持

 

本文将查看每个框架如何支持 Ajax

 

。我们将对 Blahg 进行扩展,使用每个框架的 

Ajax 

 

支持添加基本的 post 等级,从而得到一些实际体验。

Zend 

 

框架中的 Ajax

Zend 

 

框架目前还不包括任何类型的集成 Ajax 支持。Zend 框架中有很多可用于把 

Ajax 

 

添加到应用程序中的库,例如 Zend_Json   

和 Zend_XmlRpc。Zend 框架中还有一

 

些库有助于利用流行应用程序的现有 Web API

 

,例如 Flickr

 

。但是如果需要在 Zend 中

 

把一些 Ajax 添加到应用程序中,则需要您自己来完成。

 

不幸的是,您必须编写更多代码才能达到目的。好消息是,如果不与特定的与 Ajax 

相关的库集成,您可以选择喜欢的库(或者根本不选择任何库)并以您认为合适的任何

 

方式来构建 Ajax 功能。

symfony 

 

中的 Ajax

symfony 

 

框架附带了 Prototype 

 

库和 script.aculo.us 库。在 

 

   2 

   部分

 

 

 中,在初

 

始化项目并把 Web 

 

目录的内容复制到 /column/protected/symfony 中时,就是把这

些库的副本移到了在应用程序中使用这些库的位置(您必须确认这一点;它应当位于  

/column/htdocs/symfony/sf/prototype/js/ 目录中)。

 

通过提供与 Prototype 的集成,symfony 

 

可以提供一些 helper 来减少把某个 

Ajax 

 

添加到 Blahg 

 

中所需的代码量。但是反过来说:如果需要使用 Prototype 以外的

内容,则全部需要您自己来完成。

CakePHP 

 

中的 Ajax

CakePHP 

 

提供了与 Prototype 

 

库和 script.aculo.us 库的集成。我们需要下载想要

 

使用的所有库(把它们放在 /column/htdocs/cakephp/js 

 

中)。要使用 Ajax helper,

 

实际上只需要 Prototype 库。script.aculo.us 库只起美化的作用。

 

跟 symfony 

 

一样,通过提供与 Prototype 

 

的集成,在构建 Blahg   

的 Ajax 功能时,

CakePHP 

 

可以让您更轻松地完成工作。同样,反过来说:如果需要使用 Prototype 以外

的内容,则全部需要您自己来完成。Ajax helper 不会提供帮助。

注:

 

如果您的首选库是 JQuery

 

,请使用 CakePHP   

的 JavaScript helper 来获得帮

助。如果加以正确使用,这样做可以得到一些非常整洁的代码,但是这超出本文的范围。