SpeedPHP/控制器架构

来自站长百科
跳转至: 导航、​ 搜索

SpeedPHP | 快速入门 | 访问交互 | 数据操作 | 框架概述 | 模板引擎 | 优化加速 | 开发指南 | 数据模型 | API参考

JSON的使用[ ]

JSON数据格式,是堪比XML格式数据的一种替代选择,而且在代码方面,有着比XML更直观、更容易操作和更短小快速的特性。

PHP5.2以上版本中,PHP库就带有json_encode和json_decode两个JSON函数。同时,就算你的PHP环境不支持JSON函数,SpeedPHP框架也自带了Services_JSON的官方开源类,以便在没有JSON函数的情况下使用json_encode和json_decode。

json_encode函数会将普通数据编码,成为JSON格式的数据。

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

显示:{"a":1,"b":2,"c":3,"d":4,"e":5}

使用frameset[ ]

在许多应用程序内,尤其是“后台”类型的应用程序,很多时候都会用到frameset,也就是HTML的框架页面。

在HTML页面中,使用frameset其实相等于使用<a>标签来链接一个网页,只是该网页的显示是在当前页面之中。所以,在frameset的属性——网址(src),同样需要使用spUrl来进行网址的生成(生成URL)。

实例讲解[ ]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<frameset rows="80,*" frameborder="no" border="0" framespacing="0">
  <frame src="<{spUrl c=main a=top}>" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frame src="<{spUrl c=main a=bottom}>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>

这里是一个比较标准的frameset实例,页面被分为上下两个区域,加上本身页面一共是三个页面(HTML)

从例子可以看出,frameset的链接地址src,使用的仍然是spUrl来进行网址的生成。

常见问题[ ]

1. frameset页面空白? 可以检查一下页面编码(要统一编码),比如UTF-8,需要检查页面的<meta>,PHP文件和模板文件的文件编码等等。

2. 要传递一个参数到某个frame?比如说上面例子中,我们需要传递一个ID到top模板中,那么就需要在spUrl构造的地址中继续传递:<{spUrl c=main a=top id=1000}>,然后在main.php的function top()内可以使用$this->spArgs('id')接收并进行处理。

3. 页内框架(iframe)怎么样使用? 和frameset一样,iframe也需要通过spUrl来构造iframe的src地址。比如:<iframe src="<{spUrl c=main a=myhtml}>"></iframe>。

4. 在框架(frameset)内点击某个链接,希望是另一个框架(frame)改变并显示链接的页面,怎么做? 每个frameset都有自己的name属性,比如上面的top部分的frame的name是name="topFrame",所以,可以在链接<a>中的target属性中设置为topFrame,那么点击这个链接就会在top中打开了。<a href="<{spUrl c=main a=othertop}>" target="topFrame">点击这里</a>

参考来源[ ]

http://speedphp.com/manual.html

SpeedPHP使用手册导航

快速入门

开始使用SpeedPHP | 制作留言本 | 简便的数据表操作 | 用Smarty来显示页面

访问交互

入口文件 | 控制器架构 | 网址生成与PATH_INFO | 获取提交数据 | URLRewrite伪静态 | 自定义伪静态URL | 几种跳转 | 多语言实现 | 权限控制 | session、cookie | Ajax应用

数据操作

编写数据模型类 | 常规操作CRUD | 安全过滤 | 简化操作spDB | 数据变量存储 | 缓存配置

框架概述

单入口应用程序 | 架构设计 | 第三方类库及扩展功能 | UTF8编码与GBK版本 | SAE云计算版

模板引擎

模板引擎配置 | 使用Smarty | Smarty开发教程 | 自动显示模板| speedy教程 | 为什么使用模板其常见问题 | 模板包含文件 | 注册函数 | 全局变量赋值 | CSS和JS的路径

优化加速

生成静态HTML概述 | 生成HTML的使用 | 分页 | 高效函数缓存器| 模板引擎缓存

开发指南

核心函数 | 格式输出变量调试dump | 载入包含文件import | 类实例化函数spClass | 开发流程 | 目录结构、路径设置 | 大规模系统部署 | 用户自定义及全局操作 | 自定义函数库 | 自定义类库 | 自定义404页面 | 程序调试dump变量调试安全建议及命名建议

数据模型

高级数据库操作 | 数据表一对一关联 | 数据表一对多关联 | 数据表多对多关联 | 一表关联多表 | 关联结果的条件限制 | 关联结果在Smarty模板中显示 | 多数据库、数据表 | 多种类型数据库的配置 | 重写CRUD操作| 业务数据封装 | 数据函数复合调用

API参考

spModel数据库操作类 | spPager分页类 | spVerifier数据验证类 | spCache函数数据缓存类 | spLinker数据表关联实现类 | spView视图类 | spHtml静态HTML生成类 | spController控制器类 | spArgs环境参数类 | 配置 | 数据库驱动类 | 模板驱动类 | import载入文件