boaPHP开发手册v5.5

生成静态

支持将当前页面的内容保存到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()