生成静态
支持将当前页面的内容保存到HTML文件中,可以在控制器中通过 boa::save($path, $force = false) 来设置保存路径,PHP请求结束后会自动调用boa::finish()方法来保存当前页面
参数
- $path 为HTML文件的绝对路径,必须
- $force = true 表示强制覆盖已有HTML文件,默认为否
在循环使用boa::call()中可以手动调用boa::finish()来模拟页面结束,更多参见 boa类finish()方法
使用
class test extends controller{ // test控制器
public function index(){
foreach(...){
boa::call('content', ['id' => $id, 'v' => $data]); // call()模拟浏览器访问动作
}
}
public function content(){
......
boa::save(BS_WWW ."news/{$this->id}.html", true); // 设置页面保存路径
$this->view->html();
boa::finish(); // 从浏览器访问会自动调用finish(),用call()模拟请求手动调用
}
}
或者也可以使用以下方法,使用view类的html()返回功能,具体参见view类:
class test extends controller{
public function index(){
foreach(...){
$html = $this->content($id, $data); // 获取返回页面,手动设置保存
}
}
public function content($id, $data){
......
return $this->view->html('', true);
}
}
call()方式可以跨模块跨控制器访问动作,可以携带参数来标识浏览器访问还是call()访问,从而判断是否需要手动调用finish()