`
易沙520
  • 浏览: 8109 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

phpcms程序加载主线

阅读更多

前台入口index.php

加载base.php

此时是定义了系统参数,如下

//PHPCMS框架路径
define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);

if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);

//缓存文件夹地址
define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);
//主机协议
define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');
//当前访问的主机名
define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));
//来源
define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');

//系统开始时间
define('SYS_START_TIME', microtime());

//加载公用函数库
pc_base::load_sys_func('global');
pc_base::load_sys_func('extention');
pc_base::auto_load_func();

pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);
//设置本地时差
function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));

define('CHARSET' ,pc_base::load_config('system','charset'));
//输出页面字符集
header('Content-type: text/html; charset='.CHARSET);

define('SYS_TIME', time());
//定义网站根路径
define('WEB_PATH',pc_base::load_config('system','web_path'));
//js 路径
define('JS_PATH',pc_base::load_config('system','js_path'));
//css 路径
define('CSS_PATH',pc_base::load_config('system','css_path'));
//img 路径
define('IMG_PATH',pc_base::load_config('system','img_path'));
//动态程序路径
define('APP_PATH',pc_base::load_config('system','app_path'));

//应用静态文件路径
define('PLUGIN_STATICS_PATH',WEB_PATH.'statics/plugin/');

if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {
	ob_start('ob_gzhandler');
} else {
	ob_start();
}

 

接下来是调用pc_base::create_app()

pc_base::create_app() -->pc_base::load_sys_class('application')-->pc_base::_load_class('application',$path|'/libs/classes/')

上面这一条路径是base.php中函数调用,就为了一个目的,加载application.class.php类

 

下面看一下application.class.php中做了些什么

首先,看一下构造函数

/**
	 * 构造函数
	 */
	public function __construct() {
		$param = pc_base::load_sys_class('param');
		define('ROUTE_M', $param->route_m());
		define('ROUTE_C', $param->route_c());
		define('ROUTE_A', $param->route_a());
		$this->init();
	}

 这里,首先加载了param.class.php  参数配置类,对路由、$GET $POST $REQUEST $COOKIE等一些全局变量进行了初始化配置。

 

然后是调用了application类内部init()函数,调用事件。

	/**
	 * 调用事件
	 */
	private function init() {
		$controller = $this->load_controller();
		if (method_exists($controller, ROUTE_A)) {
			if (preg_match('/^[_]/i', ROUTE_A)) {
				exit('You are visiting the action is to protect the private action');
			} else {
				call_user_func(array($controller, ROUTE_A));
			}
		} else {
			exit('Action does not exist.');
		}
	}

init() 调用了 加载控制器方法,这里将控制器模版文件包含进来。

/**
	 * 加载控制器
	 * @param string $filename
	 * @param string $m
	 * @return obj
	 */
	private function load_controller($filename = '', $m = '') {
		if (empty($filename)) $filename = ROUTE_C;
		if (empty($m)) $m = ROUTE_M;
		$filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.php';
		if (file_exists($filepath)) {
			$classname = $filename;
			include $filepath;
			if ($mypath = pc_base::my_path($filepath)) {
				$classname = 'MY_'.$filename;
				include $mypath;
			}
			if(class_exists($classname)){
				return new $classname;
			}else{
				exit('Controller does not exist.');
 			}
		} else {
			exit('Controller does not exist.');
		}
	}

 

分享到:
评论

相关推荐

    PHPCMS V9 实现下拉加载的方法,兼容手机端

    在这个场景中,我们将探讨如何在PHPCMS V9中实现下拉加载,并确保其兼容手机端。 首先,理解PHPCMS V9 的工作原理是至关重要的。它是基于模块化的设计,允许开发者通过编写模块插件来扩展功能。下拉加载的实现通常...

    PHPCMS V9应用程序

    安装程序设计简洁明了,用户只需按照向导提示,即可快速完成服务器环境配置、数据库连接设置以及网站基本参数的设定。这一特点使得非专业程序员也能轻松上手,降低了网站搭建的门槛。 其次,PHPCMS V9支持UTF-8编码...

    phpcms网站后台修改程序

    【phpcms网站后台修改程序】 在IT行业中,网站开发是一个重要的领域,而PHP CMS(内容管理系统)是构建网站的一种常用工具。PHPcms V9作为一款知名的开源CMS系统,以其强大的功能和灵活性备受开发者喜爱。本教程...

    PHPCMS 2007 SP6 升级PHPCMS 2008 带充值卡升级程序

    1346行里面设置充值卡的属性 先使用官方的升级,再使用本程序升级 找到数据库里面如下文件,覆盖到用官方升级的数据库里面,注意覆盖时停止MYSQL phpcms8_pay_card.frm phpcms8_pay_card.MYD phpcms8_pay_card.MYI

    phpcms_v9.5.10_UTF8

    其次,此版本对系统的性能进行了优化,包括数据库查询效率、页面加载速度等方面,提升了用户体验。同时,phpcms_v9.5.10引入了更强大的缓存机制,如Memcached或Redis,使得高流量网站也能轻松应对,降低了服务器负载...

    Phpcms X (原PHPCMS)长期维护版

    PHPCMS X 不同于其他phpcms修改版,PHPCMS X没有对程序功能和模块进行过多的增加和魔改; PHPCMS X 的重点是保留所有官方原版程序中各功能不变的基础上,进行了全面的安全漏洞修补、BUG修正、和部分代码的优化完善,...

    PHPCMS后台模板 美化PHPCMS后台

    PHPCMS是一款流行的开源内容管理系统,它为网站开发者提供了强大的后台管理功能。这款系统的灵活性和易用性使得它在Web开发领域中广受欢迎。而"PHPCMS后台模板 美化PHPCMS后台"是针对该系统进行的界面美化工作,主要...

    PHPCMS仿制微信小程序导航网站源码 小程序商店商城系统.zip

    【标题】"PHPCMS仿制微信小程序导航网站源码 小程序商店商城系统.zip" 涉及的核心知识点主要集中在PHPCMS内容管理系统、微信小程序的导航与集成以及搭建一个具备商店功能的在线商城系统。 1. **PHPCMS内容管理系统*...

    phpcms v9程序安装包

    phpcms 将安装包解压到php环境目录下面,然后访问下面链接,可以进行自动安装 http://localhost/install_package/install

    PHPCMS V10 修改版

    10. **缓存机制**:系统内建了缓存机制,能够显著提高网站的加载速度,减少服务器负载,提升用户体验。 11. **API接口**:通过开放API,PHPCMS V10 可以与其他系统集成,实现数据交换和功能扩展,例如社交媒体分享...

    phpcms(phpcms系统)

    **phpcms系统详解** phpcms是一款基于PHP语言和MySQL数据库的开源内容管理系统,因其功能强大、易用性好,被广泛应用于网站建设和管理。在深入理解phpcms之前,我们需要了解其核心特性、主要功能以及使用场景。 **...

    phpcmsV9后台模板

    PHPCMS美化后台样式,方便操作,下载文件直接覆盖根目录即可。 后台模板蒙奇时光,亲试了下能用,很好。 就下我就对了,我浪费了50积分下载“phpcmsV9后台模板”,都是我这样的。 说的不清楚的不要下,要积分高的...

    phpcms短信插件_phpcms短信接口开发_phpcms短信发送设置

    在phpcms系统中,短信插件的开发和设置是提高用户体验和确保数据安全的重要一环。 【phpcms短信接口开发】涉及到的是如何将phpcms系统与第三方短信服务商的API进行对接。开发者通常需要获取服务商提供的SDK或者API...

    phpcms模板(打包)

    《phpcms模板详解与应用》 phpcms模板作为一款强大的网站内容管理系统,是构建网站时不可或缺的工具。本文将深入探讨phpcms模板的特性和使用方法,以及如何通过提供的压缩包文件进行安装和定制。 一、phpcms模板...

    PHPCMS资源网站源码软件源码下载站网站源码

    在"PHPCMS资源网站源码软件源码下载站网站源码"中,我们可以理解为这是提供PHPCMS源码的下载平台,用于搭建一个专门发布和分享各种软件源码的下载站。这种网站通常会包含以下关键知识点: 1. **网站框架**:PHPCMS...

    phpcms筛选功能

    **PHPcms筛选功能详解** PHPcms是一款流行的开源内容管理系统,其强大的数据筛选功能为企业网站提供了高效的数据管理和展示手段。在本篇文章中,我们将深入探讨PHPcms如何实现前端数据筛选,并结合"phpcmsV9产品...

    phpcms-后台美化版,phpcms插件,PHP

    2. **phpcms标签调用_全版改动.doc** - 提供了关于PHPCMS系统中标签调用的详细说明,标签调用是PHPCMS内容展示的关键,文档可能涵盖了如何修改和自定义这些标签以适应美化后的后台。 3. **js.html** - 这个可能是...

    PHPCMS V9 数据结构

    在深入理解PHPCMS V9的数据结构之前,我们需要先了解一些基本概念。 1. **数据库设计**:PHPCMS V9的核心在于其数据库设计,它使用MySQL作为主要的数据库管理系统。数据库设计包括了表的创建、字段定义、索引设置等...

    phpcms_v9.2.5_UTF8

    2. **模板引擎**:其内置的模板引擎使开发者能够轻松设计符合自身风格的网站界面,同时支持静态页面生成,提高网站加载速度。 3. **权限管理**:系统具备多级用户权限设置,可以灵活控制不同角色的访问和操作权限。...

    phpcms_v9.5.1_UTF8_PHPCMS9.5.1UTF8_phpcms_

    7. **安装与升级**:"install_package"文件夹包含了PHPCMS 9.5.1的安装程序,用户可以通过简单的步骤快速完成系统的安装和配置。同时,系统支持在线升级,以保持最新的功能和安全补丁。 8. **文档支持**:"readme...

Global site tag (gtag.js) - Google Analytics