Home  >  Article  >  Backend Development  >  phpcms首页的html模板是怎么加载的呢

phpcms首页的html模板是怎么加载的呢

WBOY
WBOYOriginal
2016-06-13 12:14:291666browse

phpcms首页的html模板是如何加载的呢
怎么看也没有看出来,它的入口文件是如何加载html首页模板的.
有一个basee.php类,好象负责加载的,但是里面有点看不懂它怎么载的呢

<?php<br />/**<br /> *  base.php PHPCMS框架入口文件<br /> *<br /> * @copyright			(C) 2005-2010 PHPCMS<br /> * @license				http://www.phpcms.cn/license/<br /> * @lastmodify			2010-6-7<br /> */<br />define('IN_PHPCMS', true);<br /><br />//PHPCMS框架路径<br />define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);<br /><br />if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);<br /><br />//缓存文件夹地址<br />define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);<br />//主机协议<br />define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');<br />//当前访问的主机名<br />define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));<br />//来源<br />define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');<br /><br />//系统开始时间<br />define('SYS_START_TIME', microtime());<br /><br />//加载公用函数库<br />pc_base::load_sys_func('global');<br />pc_base::load_sys_func('extention');<br />pc_base::auto_load_func();<br /><br />pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);<br />//设置本地时差<br />function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));<br /><br />define('CHARSET' ,pc_base::load_config('system','charset'));<br />//输出页面字符集<br />header('Content-type: text/html; charset='.CHARSET);<br /><br />define('SYS_TIME', time());<br />//定义网站根路径<br />define('WEB_PATH',pc_base::load_config('system','web_path'));<br />//js 路径<br />define('JS_PATH',pc_base::load_config('system','js_path'));<br />//css 路径<br />define('CSS_PATH',pc_base::load_config('system','css_path'));<br />//img 路径<br />define('IMG_PATH',pc_base::load_config('system','img_path'));<br />//动态程序路径<br />define('APP_PATH',pc_base::load_config('system','app_path'));<br /><br />//应用静态文件路径<br />define('PLUGIN_STATICS_PATH',WEB_PATH.'statics/plugin/');<br /><br />if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {<br />	ob_start('ob_gzhandler');<br />} else {<br />	ob_start();<br />}<br /><br />class pc_base {<br />	<br />	/**<br />	 * 初始化应用程序<br />	 */<br />	public static function creat_app() {<br />		return self::load_sys_class('application');<br />	}<br />	/**<br />	 * 加载系统类方法<br />	 * @param string $classname 类名<br />	 * @param string $path 扩展地址<br />	 * @param intger $initialize 是否初始化<br />	 */<br />	public static function load_sys_class($classname, $path = '', $initialize = 1) {<br />			return self::_load_class($classname, $path, $initialize);<br />	}<br />	<br />	/**<br />	 * 加载应用类方法<br />	 * @param string $classname 类名<br />	 * @param string $m 模块<br />	 * @param intger $initialize 是否初始化<br />	 */<br />	public static function load_app_class($classname, $m = '', $initialize = 1) {<br />		$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;<br />		if (empty($m)) return false;<br />		return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);<br />	}<br />	<br />	/**<br />	 * 加载数据模型<br />	 * @param string $classname 类名<br />	 */<br />	public static function load_model($classname) {<br />		return self::_load_class($classname,'model');<br />	}<br />		<br />	/**<br />	 * 加载类文件函数<br />	 * @param string $classname 类名<br />	 * @param string $path 扩展地址<br />	 * @param intger $initialize 是否初始化<br />	 */<br />	private static function _load_class($classname, $path = '', $initialize = 1) {<br />		static $classes = array();<br />		if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';<br /><br />		$key = md5($path.$classname);<br />		if (isset($classes[$key])) {<br />			if (!empty($classes[$key])) {<br />				return $classes[$key];<br />			} else {<br />				return true;<br />			}<br />		}<br />		if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {<br />			include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';<br />			$name = $classname;<br />			if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {<br />				include $my_path;<br />				$name = 'MY_'.$classname;<br />			}<br />			if ($initialize) {<br />				$classes[$key] = new $name;<br />			} else {<br />				$classes[$key] = true;<br />			}<br />			return $classes[$key];<br />		} else {<br />			return false;<br />		}<br />	}<br />	<br />	/**<br />	 * 加载系统的函数库<br />	 * @param string $func 函数库名<br />	 */<br />	public static function load_sys_func($func) {<br />		return self::_load_func($func);<br />	}<br />	<br />	/**<br />	 * 自动加载autoload目录下函数库<br />	 * @param string $func 函数库名<br />	 */<br />	public static function auto_load_func($path='') {<br />		return self::_auto_load_func($path);<br />	}<br />	<br />	/**<br />	 * 加载应用函数库<br />	 * @param string $func 函数库名<br />	 * @param string $m 模型名<br />	 */<br />	public static function load_app_func($func, $m = '') {<br />		$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;<br />		if (empty($m)) return false;<br />		return self::_load_func($func, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'functions');<br />	}<br />	<br />	/**<br />	 * 加载插件类库<br />	 */<br />	public static function load_plugin_class($classname, $identification = '' ,$initialize = 1) {<br />		$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br />		if (empty($identification)) return false;<br />		return pc_base::load_sys_class($classname, 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'classes', $initialize);<br />	}<br />	<br />	/**<br />	 * 加载插件函数库<br />	 * @param string $func 函数文件名称<br />	 * @param string $identification 插件标识<br />	 */<br />	public static function load_plugin_func($func,$identification) {<br />		static $funcs = array();<br />		$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br />		if (empty($identification)) return false;<br />		$path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.$func.'.func.php';<br />		$key = md5($path);<br />		if (isset($funcs[$key])) return true;<br />		if (file_exists(PC_PATH.$path)) {<br />			include PC_PATH.$path;<br />		} else {<br />			$funcs[$key] = false;<br />			return false;<br />		}<br />		$funcs[$key] = true;<br />		return true;<br />	}<br />	<br />	/**<br />	 * 加载插件数据模型<br />	 * @param string $classname 类名<br />	 */<br />	public static function load_plugin_model($classname,$identification) {<br />		$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br />		$path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'model';<br />		return self::_load_class($classname,$path);<br />	}<br />	<br />	/**<br />	 * 加载函数库<br />	 * @param string $func 函数库名<br />	 * @param string $path 地址<br />	 */<br />	private static function _load_func($func, $path = '') {<br />		static $funcs = array();<br />		if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions';<br />		$path .= DIRECTORY_SEPARATOR.$func.'.func.php';<br />		$key = md5($path);<br />		if (isset($funcs[$key])) return true;<br />		if (file_exists(PC_PATH.$path)) {<br />			include PC_PATH.$path;<br />		} else {<br />			$funcs[$key] = false;<br />			return false;<br />		}<br />		$funcs[$key] = true;<br />		return true;<br />	}<br />	<br />	/**<br />	 * 加载函数库<br />	 * @param string $func 函数库名<br />	 * @param string $path 地址<br />	 */<br />	private static function _auto_load_func($path = '') {<br />		if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.'autoload';<br />		$path .= DIRECTORY_SEPARATOR.'*.func.php';<br />		$auto_funcs = glob(PC_PATH.DIRECTORY_SEPARATOR.$path);<br />		if(!empty($auto_funcs) && is_array($auto_funcs)) {<br />			foreach($auto_funcs as $func_path) {<br />				include $func_path;<br />			}<br />		}<br />	}<br />	/**<br />	 * 是否有自己的扩展文件<br />	 * @param string $filepath 路径<br />	 */<br />	public static function my_path($filepath) {<br />		$path = pathinfo($filepath);<br />		if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {<br />			return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];<br />		} else {<br />			return false;<br />		}<br />	}<br />	<br />	/**<br />	 * 加载配置文件<br />	 * @param string $file 配置文件<br />	 * @param string $key  要获取的配置荐<br />	 * @param string $default  默认配置。当获取配置项目失败时该值发生作用。<br />	 * @param boolean $reload 强制重新加载。<br />	 */<br />	public static function load_config($file, $key = '', $default = '', $reload = false) {<br />		static $configs = array();<br />		if (!$reload && isset($configs[$file])) {<br />			if (empty($key)) {<br />				return $configs[$file];<br />			} elseif (isset($configs[$file][$key])) {<br />				return $configs[$file][$key];<br />			} else {<br />				return $default;<br />			}<br />		}<br />		$path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';<br />		if (file_exists($path)) {<br />			$configs[$file] = include $path;<br />		}<br />		if (empty($key)) {<br />			return $configs[$file];<br />		} elseif (isset($configs[$file][$key])) {<br />			return $configs[$file][$key];<br />		} else {<br />			return $default;<br />		}<br />	}<br />}

------解决思路----------------------
默认路由设置:caches/configs/route.php  'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
执行流程:base.php -> m=content -> c=index -> a=init
路径:phpcms/modules/content/index.php  里面的 function init() 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn