从现在起,我们就要正式接触speedphp框架了,现在给大家介绍一些基础知识,方便后面的学习:
原创归安徽php社区:教程已经全部完成,看全部教程,请移步安徽php社区http://bbs.hfphp.org1.
controller目录内的每个控制器都必须继承 spController,这个是speedphp主控制器
在controller目录内的每个文件,我们都称为控制器(controller)。每个 控制器,相对来说就是多个相关程序的集合,而每个控制器内部的每一个function,都是一个动作(action),而这些动作(程序),都是相关性比 较紧密的。比如说在用户登录注册的程序里面,可能会有一个叫user.php的控制器,而里面可能有:
function register() 用户注册程序
function login() 用户登录程序
function findpassword() 找回密码程序等等。。。
这些动作(程序)都是与user.php(用户程序)是非常紧密相关的,所以我们放到同一个控制器里面。
2.基本知识:(有的大家不要急,我们会使用滴~~)
(一)、dump——格式化输出变量程序(SpeedPHP框架核心调试工具 )
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
我们先介绍我们的配置文件
配置文件部分:
代码
<?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行
代码
'default_controller' => 'main', // 默认的控制器名称
'default_action' => 'index', // 默认的动作名称
'url_controller' => 'c', // 请求时使用的控制器变量标识
'url_action' => 'a', // 请求时使用的动作变量标识
'default_action' => 'index', // 默认的动作名称
'url_controller' => 'c', // 请求时使用的控制器变量标识
'url_action' => 'a', // 请求时使用的动作变量标识
比如大家想改得个性点
可用这么干:
代码
'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转载请说明出处,谢谢。