/** * 渲染指定的视图文件 * * 渲染时,视图要使用的数据保存在控件的 $_view 属性中。 * * @param string $filename * @param array $more_vars * * @return string */ protected function _fetchView($filename, array $more_vars = null) { $vars = $this->_view; $vars['_ctx'] = $this->_context; $vars['_CTL_ID'] = $this->id(); $vars['_BASE_DIR'] = $this->_context->baseDir(); $vars['_BASE_URI'] = $this->_context->baseUri(); $vars['_REQUEST_URI'] = $this->_context->requestUri(); if (is_array($more_vars)) { $vars = array_merge($vars, $more_vars); } //if (is_null($this->_render)) //{ $this->_render = new $this->_render_class(dirname($filename)); //} $this->_render->vars($vars); $extname = pathinfo($filename, PATHINFO_EXTENSION); $pextname = $this->_render->extname(); if (empty($extname) || $extname != $pextname && !empty($pextname)) { $filename .= '.' . ($pextname ? $pextname : 'php'); } return $this->_render->parse($filename); }