/** * 访问link属性时才实例化model * * @param string $property * @return RedisDriver|Config|CouchDriver|MongoDriver|PDOSqlDriver|Request|Response|View|mixed|null */ function __get($property) { switch ($property) { case 'link': return $this->link = $this->getLink(); default: return parent::__get($property); } }
/** * 输出带layer的view * * @param array $data * @param string $method * @param bool $load_layer * @return string|void * @throws CoreException */ function obRender($data, $method, $load_layer) { ob_start(); $this->{$method}($data); $method_content = ob_get_clean(); parent::getDelegate()->getClosureContainer()->run('obRender', $method_content); if ($load_layer) { $this->loadLayer($method_content); } else { echo $method_content; } }
/** * 发送一个包含文件名的下载头 * * @param null $file_name * @param array $add_header * @param bool $only_add_header */ protected function sendDownloadHeader($file_name = null, $add_header = array(), $only_add_header = false) { if (null === $file_name) { $file_name = parent::getController() . '_' . parent::getAction(); } $download_header = array("Pragma: public", "Expires: 0", "Cache-Control:must-revalidate, post-check=0, pre-check=0", "Content-Type: application/force-download", "Content-Type: application/octet-stream", "Content-Type: application/download", "Content-Disposition:attachment;filename={$file_name}", "Content-Transfer-Encoding:binary"); if (!empty($add_header)) { if (true === $only_add_header) { $download_header = $add_header; } else { $download_header = array_merge($download_header, $add_header); } } Response::getInstance()->setHeader($download_header); }