CakePHP中文手册【翻译】-请求处理组件
请求处理组件
第1节
介绍
在Cake里,使用请求处理组件来决定关于进来的HTTP请求信息。你可以使用它更好的通知你的controller关于AJAX请求,得到关于远程客户端IP地址,以及请求的内容类型,或者去除输出数据中你不想要的数据的信息。为了使用请求组件,你需要确保在Controller的$component数组中指定它。.
class ThingsController extends AppController { var $components = array('RequestHandler'); // ... } |
第2节
获取客户/请求信息
让我们更深入一步:
accepts
- string $type
返回客户接受的content-type信息,这取决于$type值。如果传入null或无值,它将返回一个客户端接受的content-type数组。如果传入一字符串,而且在content-type中检验$type(参看setContent()),客户端接受它,它返回true。如果$type是一个数组,每个字符串将分别计算,如果只要他们中的一个符合接受的content-type类型,accepts()方法返回true。例如:
class PostsController extends AppController { var $components = array('RequestHandler'); function beforeFilter () { if ($this->RequestHandler->accepts('html')) { // Execute code only if client accepts an HTML (text/html) response } elseif ($this->RequestHandler->accepts('rss')) { // Execute RSS-only code } elseif ($this->RequestHandler->accepts('atom')) { // Execute Atom-only code } elseif ($this->RequestHandler->accepts('xml')) { // Execute XML-only code } if ($this->RequestHandler->accepts(array('xml', 'rss', 'atom'))) { // Executes if the client accepts any of the above: XML, RSS or Atom } } } |
- getAjaxVersion
如果你正在使用Prototype JS库,你可以获取一个特殊的头,此头在AJAX请求中设定。本函数返回使用的Prototype版本。
- getClientIP
返回远程客户端的IP地址。
- getReferrer
返回请求起源的服务器名。
- isAjax
如果当前的请求是一个XMLHttpRequest,返回true。
- isAtom
如果客户端接受Atom feed内容(application/atom+xml),返回true。
- isDelete
如果当前的请求通过DELETE,返回true。
- isGet
如果当前请求通过GET,返回true。
- isMobile
如果user agent字符串符合一个移动的web浏览器,返回true。
- isPost
如果当前请求通过POST,返回true。
- isPut
如果当前请求通过PUT,返回true。
- isRss
如果客户端接受RSS feed内容(application/rss+xml),返回true。
- isXml
.如果客户端接受XML(application/xml or text/xml),返回true。
setContent
- string $name
- string $type
对于accepts() 和prefers()的使用,增加一个content-type别名映射,在这里$name是映射(字符串)的名字,$type是一个字符串或者一个字符串数组。它们每个都是一个MIME类型。内建的类型映射如下:
// Name => Type 'js' => 'text/javascript', 'css' => 'text/css', 'html' => 'text/html', 'form' => 'application/x-www-form-urlencoded', 'file' => 'multipart/form-data', 'xhtml' => array('application/xhtml+xml', 'application/xhtml', 'text/xhtml'), 'xml' => array('application/xml', 'text/xml'), 'rss' => 'application/rss+xml', 'atom' => 'application/atom+xml' |
第3节
清除数据
你偶尔想删除来自一个请求或输出的数据,使用下面的请求处理函数来完成这些操作吧。
stripAll
- string $str
删除$str中的空格,图像,以及脚本(using stripWhitespace(), stripImages(), 和stripScripts()).
stripImages
- string $str
从$str中删除任何嵌入图像的HTML。
stripScripts
- string $str
从$str中删除任何与<script> 和<style>相关的标签。
stripTags
- string $str
- string $tag1
- string $tag2...
从$str中删除$tag1, $tag2等指定的标签。
$someString = '<font color="#FF0000"><bold>Foo</bold></font> <em>Bar</em>'; echo $this->RequestHandler->stripTags($someString, 'font', 'bold'); // 输出: Foo <em>Bar</em> |
stripWhiteSpace
- string $str
从$str中删除空格。
第4节
其他有用的函数
当你的应用程序包含AJAX请求时,请求处理组件非常有用。使用setAjax()函数来自动检测AJAX请求,并为请求将Controller的布局设置为AJAX布局。这样的好处是你可以创建小的分块的view,这些view作为AJAX view也可能是双倍的。
// list.thtml <ul> <? foreach ($things as $thing):?> <li><?php echo $thing;?></li> <?endforeach;?> </ul> //------------------------------------------------------------- //The list action of my ThingsController: function list() { $this->RequestHandler->setAjax($this); $this->set('things', $this->Thing->findAll()); } |
当一个普通的浏览器请求为/things/list时,对于应用程序而言,无序列会在缺省的布局里render。如果把URL作为一个AJAX操作的一部分请求时,列表会自动在空的AJAX布局里render。
Last Updated:2006年12月03日
转载于:https://www.cnblogs.com/confach/articles/577359.html
CakePHP中文手册【翻译】-请求处理组件相关推荐
- 20050620 GNU Bison 中文手册翻译完成
20050620 GNU Bison 中文手册翻译完成 GNU Bison实际上是使用最广泛的Yacc-like分析器生成器,使用它可以生成解释器,编译器,协议实现等多种程序. 它不但与Yacc兼容还 ...
- CakePHP中文手册【翻译】
0.声明 1.前言 2.介绍CakePHP 3.基本概念 4.安装CakePHP 5.配置 6.Scaffolding 7.Model 8.Controller 9.View 10.Component ...
- CakePHP中文手册【翻译】-Cake Blog创建指南
Cake Blog创建指南 第1节 介绍 欢迎来到Cake.你可能正在使用本指南,因为你想学习更多关于Cake是如何工作的知识.其目的就是为了提高效率,并且让编写代码变得更加有趣.我们希望当你深入代码 ...
- CakePHP中文手册【翻译】-ACL
访问控制列表(ACL) 第1节 理解ACL如何工作 最重要,也最强大的事情是需要一系列的访问控制.访问控制列表是一种细粒度,易维护以及易管理的方式来管理应用程序权限.访问控制列表或ACL[1]处理2件 ...
- CakePHP中文手册【翻译】-基本概念
基本概念 第1节 介绍 本章是对MVC概念的一个短小而且随意的介绍,因为这些概念在Cake里得到实现.如果你是一个MVC模式的新人,很显然本章就是为你而写的.我们从MVC的一般概念的讨论开始,然后以我 ...
- bq24773功能分析(中文手册翻译)
1. 特性 1-4节电池充电控制,输入电压范围4.5-24V 支持IIC 无电池或电池深度放电的情况下支持系统即时启动操作 可在适配器满载时进入补充模式,支持同步BATFET 控制 可编程输入电流限制 ...
- cakephp $this-html-css,CakePHP - 中文手册
Helper(帮助类) Section 1 Helpers Helper类就是为视图提供了常见且通用的方法,更好更快的格式化或者展现数据. HTML Helper 介绍 HTML Helper是Cak ...
- CakePHP 中文手册
基本概念 Section1 简介 本章节篇幅很短,简单的介绍一下MVC概念以及在cake中是如何实现的.如果你对MVC模式很陌生,这个章节将会非常适合你.我们由 常规的MVC概念开始我们的讨论,然后用 ...
- GNU Bison 2.1 中文手册
20060121 GNU Bison 2.1中文手册翻译完成 Bison 2.1 是Bison最新版本.该版本的最大改进就是支持以C++语言做为输出,并且在分析器的本地化输出中有多项改进.Bison的 ...
最新文章
- 删除链表中全部值为k的节点
- REVERSE-PRACTICE-JarvisOJ-3
- Linux中英文命令对应
- 【c++】构造函数初始化列表中成员初始化的次序性
- 智能移动项目打包发布经验交流
- 机器学习:提升算法之Adaboost
- @spoj - lcs2@ Longest Common Substring II
- 象棋软件最强手机版_我说它是地表手机最强清理软件,没意见吧
- 计算机应用的三级学科名称及代码,学科分类与代码版.doc
- PHP开源管理系统 Gms,GMS 一个成熟的gms系统,拥有基本的权限管理和分类,后台很好 Windows Develop 249万源代码下载- www.pudn.com...
- matlab 正则化表达式_MatLab归一化(正则化)函数
- Java-获取本地主机的域名和主机名(net)
- 感知机原理以及python实现
- [设计模式]行为模式-模板方法(C++描述)
- 【技术科普】HLS视频流内m3u8文件和TS切片是什么关系?
- javascript 百度地图定位标点,定位详情
- 网络工程师——Private VLAN
- JS创建26个小写字母数组
- ORACLE迁移到DM/达梦 Mysql迁移到DM/达梦 SQLSERVER迁移到DM/达梦 超级有用参考文档!!!
- 介绍汽车美容预约小程序app开发