您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

PHPCMS源码构造分析

紫真2025-05-23phpcms教程已有人查阅

导读pc_base::creat_app()主要工作就是把application这个类初始化。application类的初始化到底干了些什么呢,我们研究一下。

pc_base::creat_app()主要工作就是把application这个类初始化。
application类的初始化到底干了些什么呢,我们研究一下。
/**
* 构造函数
*/
public function __construct() {
$param = pc_base::load_sys_class('param');//加载param类并初始化
define('ROUTE_M', $param->route_m());
define('ROUTE_C', $param->route_c());
define('ROUTE_A', $param->route_a());
$this->init();
}
首先加载了param类并初始化,param类又是干什么的呢,简单说就是处理参数的。我们来看下源码。
param.class.php
//路由配置
private $route_config = '';
public function __construct() {
if(!get_magic_quotes_gpc()) {
$_POST = new_addslashes($_POST);
$_GET = new_addslashes($_GET);
$_REQUEST = new_addslashes($_REQUEST);
$_COOKIE = new_addslashes($_COOKIE);
}
$this->route_config = pc_base::load_config('route', SITE_URL) ? pc_base::load_config('route', SITE_URL) : pc_base::load_config('route', 'default');
if(isset($this->route_config['data']['POST']) && is_array($this->route_config['data']['POST'])) {
foreach($this->route_config['data']['POST'] as $_key => $_value) {
if(!isset($_POST[$_key])) $_POST[$_key] = $_value;
}
}
if(isset($this->route_config['data']['GET']) && is_array($this->route_config['data']['GET'])) {
foreach($this->route_config['data']['GET'] as $_key => $_value) {
if(!isset($_GET[$_key])) $_GET[$_key] = $_value;
}
}
if(isset($_GET['page'])) $_GET['page'] = max(intval($_GET['page']),1);
return true;
}
首先对传过来的参数进行安全过滤。
然后获取route配置赋值给$this->route_config,此处要说明的是该route的配置文件是要给定默认的参数以及参数值。此时$this->route_config的值为一个数组
array(
'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
);
所以这里就有三个默认的参数和对应的参数值。
接下来,检查route的配置文件中是否有GET和POST的默认值,如果有并且为数组,而且当传过来的参数中没有对应的参数值时,就把route中的默认参数值赋值给$_GET或者$_POST。
---------------------------param.class.php结束--------------------------
下面执行到
define('ROUTE_M', $param->route_m());
define('ROUTE_C', $param->route_c());
define('ROUTE_A', $param->route_a());
$param->route_m()等三个方法到底干了些呢,代码如下
/**
* 获取模型
*/
public function route_m() {
$m = isset($_GET['m']) && !empty($_GET['m']) ? $_GET['m'] : (isset($_POST['m']) && !empty($_POST['m']) ? $_POST['m'] : '');
if (empty($m)) {
return $this->route_config['m'];
} else {
return $m;
}
}
这个方法的作用简单来说就是获取$_GET['m']或者$_POST['m']的值。
总结:
写到这里也该总结一下了,前面这些代码主要做了一些准备加载 Controller的工作。主要有以下几点:
1.加载phpcms框架中的入口文件base.php。此步操作的作用是加载一些必须的配置文件和函数。
2.执行pc_base::creta_app()方法。(当然看到这?飧龊姑挥兄葱型瓯稀#┐撕釉亓薬pplication.class.php,并且初始化该类。在该类的初始化的过程的前半部分,主要完成了对参数和默认参数的处理,下面就是加载控制器了。

本文标签:

很赞哦! ()

相关源码

  • (PC+WAP)蓝色电缆桥架五金钢结构机械PbootCMS模板下载采用PC与WAP双端适配设计,满足桌面设备和移动端访问需求。专注服务于电缆桥架、钢结构及五金机械制造领域,通过结构化布局展示产品特性与技术参数,后台数据一体化管理提升内容维护效率。查看源码
  • (自适应响应式)投资理财金融机构财务管理pbootcms模板本模板基于PbootCMS系统开发,为投资理财、金融机构等行业设计。采用专业严谨的布局风格,突出金融服务行业特色,适合展示各类理财产品、投资服务和金融资讯。查看源码
  • 响应式艺考培训学校机构pbootcms模板html5源码基于PbootCMS免费开源内核开发,为艺考培训学校与艺术机构设计,替换图文即可快速适配全行业需求。响应式布局兼容手机/PC端,数据实时同步,运维效率提升300%。查看源码
  • (自适应响应式)WORDwps办公资源教程资讯网站模板下载基于PbootCMS内核开发的响应式网站模板,为办公教程、WPS技巧分享、职场技能培训等场景打造。模板内置标准化文档分类体系,支持图文/视频教程混合展示,满足现代办公知识传播需求。查看源码
  • (响应式)轴承机械五金零件产品pbootcms落地推广单页源码下载为轴承、机械零件等工业产品打造的响应式单页模板,基于PbootCMS内核开发,助力企业快速构建专业级产品展示页面。模板采用工业风设计语言,突出产品参数与性能优势,适用于设备制造商、零部件供应商等B2B场景推广。查看源码
  • (自适应)酒店民宿客房旅馆pbootcms模板下载基于PbootCMS内核开发的酒店民宿行业专用网站模板,专注于为住宿服务企业提供专业高效的在线展示平台。该模板采用响应式设计结构,确保在不同终端设备上均能呈现优质浏览体验。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐