Controller为控制器文件。程序从index.php开始执行
[php]
定义(“SP_PATH”,目录名(__FILE__)。“/ SpeedPHP”);
定义(“APP_PATH”,目录名(__FILE__));
$spConfig = 数组(
“db”=>数组(
'主机' => '本地主机',
'登录' => '根',
'密码' => '根',
'数据库' => '测试',
),
'查看' =>数组(
'启用'=>TRUE,
'config'=>数组(
'模板目录'=> APP_PATH.'/tpl',
'compile_dir'=>; APP_PATH.'/tmp',
'cache_dir'=> APP_PATH.'/tmp',
'左分隔符'=> '
'右分隔符'=> '}>',
),
)
);
需要(SP_PATH。“/SpeedPHP.php”);
spRun();
以上程序定义了App和SP的路径,加载了数据库和视图层的配置,加载SP的核心库文件,最后运行整个系统。以上程序运行起来时,会首先到Controller目录下执行主类下的索引方法。主要类的程序如下:
[php]
class main 扩展 spController
{
函数索引(){
$tpl = $this->spArgs("tpl","green");
$guestbook =spClass("留言簿");
$this->results= $guestbook->findAll();
$this->display("{$tpl}/index.html");
}
函数 write(){
$guestbook =spClass("留言簿");
$newrow =数组(
'名字'=> $this->spArgs('name'),
'标题'=> $this->spArgs('title'),
'内容'=> $this->spArgs('contents'),
);
$guestbook->create($newrow);
echo "
}
}
从index.php过来默认调用main方法的index函数,在本例中这个函数首先设置模板名参数(tpl)。再新建一个model。使用model的findall方法,查找全部数据库信息。最后使用tpl模板显示结果。上述控制器程序,必须继承自spController类,方法名就是调用的action名。在程序中显式调用时路径为index.php?c=main&a=write。模型如下所示,是和数据库表同名的类文件。该模型必须继承自spModel,同时设置了主键和表名属性。
[php]
班级留言簿扩展 spModel
{
var $pk = “id”; // 每个唯一留言的标志,可以称为主键
var $table ="留言簿"; // 数据表的名称
}
在tpl模板目录里的index.html文件下使用如下所示程序,整理输出结果。
[html]
<{foreach from=$results item=one}>
<{$one.name}>:
<{$one.contents}>