![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
1.
controller 目录内的每个控制器都必须继承 spController,这个是speedphp主控制器
在controller目录内的每个 文件,我们都称为控制器(controller)。每个 控制器,相对来说就是多个相关程序的集合,而每个控制器内部的每一个function,都是一个动作(action),而这些动作(程序),都是相关性比 较紧密的。比如说在用户登录注册的程序里面,可能会有一个叫user.php的控制器,而里面可能有:
function register() 用户注册程序
function login() 用户登录程序
function findpassword() 找回 密码程序等等。。。
这些动作(程序)都是与user.php(用户程序)是非常紧密相关的,所以我们放到同一个控制器里面。
2.基本知识:(有的大家不要急,我们会使用滴~~)
(一)、dump——格式化输出变量程序(Speed PHP框架核心调试工具 )
string dump(mixed vars, bool output, bool show_trace)
dump()在日常 开发中经常会用到,是进行变量调试的最方便的方法。
参数:
mixed vars 需要调试输出的变量,
bool output 是否直接输出调试信息,默认直接输出。在设置成FALSE的时候,将会是返回调试信息而不是直接输出。
bool show_trace 是否进行变量调试跟踪,如果设置成TRUE的话,将使用spError()的方式显示调试信息。
也参考官方的调试 教程: http://speedphp.com/post/core-functions-dump.html
(二)、spUrl
URL模式的构建 函数
url_string spUrl(string controller, string action, array args, string anchor, bool no_sphtml)
原创:安徽php社区http://bbs.hfphp.org
在Smarty中,spUrl()的使用将是:
<{spUrl controller=null action=null arg1=arg1 arg2=arg2 … anchor=anchor}>
参数:
string controller 控制器名称,默认为配置'default_controller'
string action 动作名称,默认为配置'default_action'
array args 传递的参数,数组形式
string anchor 跳转锚点
bool no_sphtml 是否 应用spHtml设置,在FALSE时 效果与不启用spHtml相同。
spUrl()是框架中使用最多的函数之一
(三)spArgs——获取环境参数
成员变量
private
$args — 在内存中保存的变量
成员函数
__construct — 构造函数
get — 获取应用程序请求变量值
has — 检测是否存在某值
__input — 函数式使用模型辅助类的输入函数
request — 获取请求字符
官方教程:
spArgs代替$_GET/$_POST的数据获取:
http://speedphp.com/post/spargs-post-get.html
3.本次我们的 实例是写一个比较完整的留言本,主要实现功能,就不做什 么美化了,呵呵
原创:安徽php社区http://bbs.hfphp.org
我们先介绍我们的配置文件
配置文件部分:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<?
php
// 加入头信息,不然会出现有时候会出现乱码,我们自己定义了header头信息
header ( " Content-Type:text/html;charset=utf-8 " );
define ( " SP_PATH " , dirname ( __FILE__ ) . " /SpeedPHP " ); // 定义框架目录
define ( " APP_PATH " , dirname ( __FILE__ )); // 定义项目目录
$spConfig = array ( // 开始项目配置
" db " => array ( // 数据库配置开始
' host ' => ' localhost ' ,
' login ' => ' root ' ,
' password ' => ' 111111 ' ,
' database ' => ' sp_message ' //
//'prefix'=>'qy_' //这个是数据库表名前缀,可有可无,根据自身情况来定~~
) ,
// 本次,我们的的实例没有使用smarty来写,但是作为Speedphp框架自带的模板引擎还是要提下滴,
//详细的大家可以看speedphp手册,大家用smarty的基础,应该比较简单的~~~
" view " => array ( // 传说中smary开始,这个大家应该比较熟悉吧~~都应该学过了,
' enabled ' => TRUE , // 使可用,也就是开启功能啦~~~
' config ' => array ( // 开始配置了,
' template_dir ' => APP_PATH . ' /templates ' , // smarty模板目录
' complie_dir ' => APP_PATH . " /tmp " , // 编译目录
' cache_dir ' => APP_PATH . " /tmp " , // 缓存目录
' left_delimiter ' => ' <{ ' , // smarty左限定符 ()
' right_delimiter ' => ' }> ' , // smarty右限定符
) ,
) ,
// 这里是生成静态页的开始
' html ' => array (
' enabled ' => TRUE , // 开启html静态生成功能
) ,
);
require (SP_PATH . " /SpeedPHP.php " ); //
// 加入头信息,不然会出现有时候会出现乱码,我们自己定义了header头信息
header ( " Content-Type:text/html;charset=utf-8 " );
define ( " SP_PATH " , dirname ( __FILE__ ) . " /SpeedPHP " ); // 定义框架目录
define ( " APP_PATH " , dirname ( __FILE__ )); // 定义项目目录
$spConfig = array ( // 开始项目配置
" db " => array ( // 数据库配置开始
' host ' => ' localhost ' ,
' login ' => ' root ' ,
' password ' => ' 111111 ' ,
' database ' => ' sp_message ' //
//'prefix'=>'qy_' //这个是数据库表名前缀,可有可无,根据自身情况来定~~
) ,
// 本次,我们的的实例没有使用smarty来写,但是作为Speedphp框架自带的模板引擎还是要提下滴,
//详细的大家可以看speedphp手册,大家用smarty的基础,应该比较简单的~~~
" view " => array ( // 传说中smary开始,这个大家应该比较熟悉吧~~都应该学过了,
' enabled ' => TRUE , // 使可用,也就是开启功能啦~~~
' config ' => array ( // 开始配置了,
' template_dir ' => APP_PATH . ' /templates ' , // smarty模板目录
' complie_dir ' => APP_PATH . " /tmp " , // 编译目录
' cache_dir ' => APP_PATH . " /tmp " , // 缓存目录
' left_delimiter ' => ' <{ ' , // smarty左限定符 ()
' right_delimiter ' => ' }> ' , // smarty右限定符
) ,
) ,
// 这里是生成静态页的开始
' html ' => array (
' enabled ' => TRUE , // 开启html静态生成功能
) ,
);
require (SP_PATH . " /SpeedPHP.php " ); //
4.speedphp的框架默认的一些配置及相关设置放在SpeedPHP/spConfig.php
原创:安徽php社区http://bbs.hfphp.org
比如:36~39行
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
'
default_controller
'
=>
'
main
'
,
//
默认的控制器名称
' default_action ' => ' index ' , // 默认的动作名称
' url_controller ' => ' c ' , // 请求时使用的控制器变量标识
' url_action ' => ' a ' , // 请求时使用的动作变量标识
' default_action ' => ' index ' , // 默认的动作名称
' url_controller ' => ' c ' , // 请求时使用的控制器变量标识
' url_action ' => ' a ' , // 请求时使用的动作变量标识
比如大家想改得个性点
可用这么干:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
'
default_controller
'
=>
'
zkyc
'
,
//
默认的控制器名称
' default_action ' => ' hfphp .org' , // 默认的动作名称
' url_controller ' => ' a ' , // 请求时使用的控制器变量标识
' url_action ' => ' b ' , // 请求时使用的动作变量标识
' default_action ' => ' hfphp .org' , // 默认的动作名称
' url_controller ' => ' a ' , // 请求时使用的控制器变量标识
' url_action ' => ' b ' , // 请求时使用的动作变量标识
O(∩_∩)O~
再比如64~80:
原创:安徽php社区http://bbs.hfphp.org
代码
'
view
'
=>
array
(
//
视图配置
' enabled ' => TRUE , // 开启视图
' config ' => array (
' template_dir ' => APP_PATH . ' /tpl ' , // 模板目录
' compile_dir ' => APP_PATH . ' /tmp ' , // 编译目录
' cache_dir ' => APP_PATH . ' /tmp ' , // 缓存目录
' left_delimiter ' => ' { ' , // smarty左限定符
' right_delimiter ' => ' } ' , // smarty右限定符
) ,
' debugging ' => FALSE , // 是否开启视图调试功能,在部署模式下无法开启视图调试功能
' engine_name ' => ' smarty ' , // 视图驱动名称
' engine_path ' => SP_PATH . ' /Core/Smarty/Smarty.class.php ' , // smarty类库路径
' auto_ob_start ' => TRUE , // 是否自动开启缓存输出控制
' auto_display ' => FALSE , // 是否使用自动输出模板功能
' auto_display_sep ' => ' / ' , // 自动输出模板的拼装模式,/为按目录方式拼装,_为按下划线方式,以此类推
' auto_display_suffix ' => ' .html ' , // 自动输出模板的后缀名
) ,
' enabled ' => TRUE , // 开启视图
' config ' => array (
' template_dir ' => APP_PATH . ' /tpl ' , // 模板目录
' compile_dir ' => APP_PATH . ' /tmp ' , // 编译目录
' cache_dir ' => APP_PATH . ' /tmp ' , // 缓存目录
' left_delimiter ' => ' { ' , // smarty左限定符
' right_delimiter ' => ' } ' , // smarty右限定符
) ,
' debugging ' => FALSE , // 是否开启视图调试功能,在部署模式下无法开启视图调试功能
' engine_name ' => ' smarty ' , // 视图驱动名称
' engine_path ' => SP_PATH . ' /Core/Smarty/Smarty.class.php ' , // smarty类库路径
' auto_ob_start ' => TRUE , // 是否自动开启缓存输出控制
' auto_display ' => FALSE , // 是否使用自动输出模板功能
' auto_display_sep ' => ' / ' , // 自动输出模板的拼装模式,/为按目录方式拼装,_为按下划线方式,以此类推
' auto_display_suffix ' => ' .html ' , // 自动输出模板的后缀名
) ,
原创:安徽php社区http://bbs.hfphp.org/thread-31-1-1.html转载请说明出处,谢谢。