PHP
框架,第 4 部分: 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
始化项目并把 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 来获得帮
助。如果加以正确使用,这样做可以得到一些非常整洁的代码,但是这超出本文的范围。