您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS源码构造分析
紫真2025-05-23phpcms教程已有人查阅
导读pc_base::creat_app()主要工作就是把application这个类初始化。application类的初始化到底干了些什么呢,我们研究一下。
pc_base::creat_app()主要工作就是把application这个类初始化。
application类的初始化到底干了些什么呢,我们研究一下。
param.class.php
然后获取route配置赋值给$this->route_config,此处要说明的是该route的配置文件是要给定默认的参数以及参数值。此时$this->route_config的值为一个数组
接下来,检查route的配置文件中是否有GET和POST的默认值,如果有并且为数组,而且当传过来的参数中没有对应的参数值时,就把route中的默认参数值赋值给$_GET或者$_POST。
---------------------------param.class.php结束--------------------------
下面执行到
总结:
写到这里也该总结一下了,前面这些代码主要做了一些准备加载 Controller的工作。主要有以下几点:
1.加载phpcms框架中的入口文件base.php。此步操作的作用是加载一些必须的配置文件和函数。
2.执行pc_base::creta_app()方法。(当然看到这?飧龊姑挥兄葱型瓯稀#┐撕釉亓薬pplication.class.php,并且初始化该类。在该类的初始化的过程的前半部分,主要完成了对参数和默认参数的处理,下面就是加载控制器了。
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,并且初始化该类。在该类的初始化的过程的前半部分,主要完成了对参数和默认参数的处理,下面就是加载控制器了。
本文标签:
很赞哦! ()
相关教程
图文教程
PHPCMSV9双?窘ㄉ枨谢皇迪址椒?
PHPCMSV9要做双语,很多同学都是迷茫的,在此特地分享我的双语制作步辶 我这种模式是把两个站点都改为HTML静态模式才可以实现双语切换可分为两种模式:
phpcms怎么做SEO?关键字设置使用教程
phpcms做关键字的方法:首先需要登录phpcms网站后台;然后点击phpcms后台顶部的“设置”按钮,并点击“相关设置”下的“站点管理”;接着点击默认站点右侧的
phpcmsv9怎么样有什么优势
phpcms v9很不错。对于小型的地方门户网站,phpcms是非常适合的,不仅仅是安全性方面,门户级的操作方式,简单强大的站群功能,功能模块化,都非常适合今后的维护和持续开发使用。
phpcms无法上传图片的解决方法
phpcms无法上传图片怎么办?PHPCMS V9 在最近一次更新的版本(9.4.2)中由于代码判断失误。导致PHPCMS在后台更新文章无法上传图片而导致的bug。
相关源码
-
(自适应html5)自媒体运营培训教程个人博客pbootcms模板本模板基于PbootCMS系统开发,特别适合自媒体运营培训、知识付费类网站使用。采用响应式设计,能够适配各类终端设备,为内容创作者提供专业的内容展示平台。查看源码 -
(PC+手机)帝国cms7.5漫画图片连载网站源码免费下载本模板基于帝国CMS7.5深度开发,为漫画阅读类网站打造。整体设计风格贴合漫画行业特性,界面布局充分考虑漫画作品的展示需求,支持多种漫画阅读模式。模板采用响应式设计,能够自动适配PC端和移动端设备,为读者提供流畅的阅读体验。查看源码 -
自适应电子科技类产品公司pbootcms网站模板基于PbootCMS内核开发,为电子科技类企业设计,适用于电子产品展示、企业官网等场景。该模板采用开源架构,用户可自由访问和修改源码,灵活适配各类行业需求,无需二次开发成本查看源码 -
(响应式)企业管理人力资源服务类pbootcms模板源码下载为人力资源服务及企业管理设计的响应式网站模板,基于PbootCMS内核开发。通过宽屏布局优化岗位展示效果,简洁界面聚焦人才服务核心业务,自适应技术确保在PC端与手机端查看源码 -
帝国cms7.2淘宝客导购自媒体博客网站模板源码本模板基于帝国CMS7.2内核深度开发,为淘宝客、商品导购类自媒体及博客网站设计。通过可视化后台管理,可快速搭建具备商品推荐、比价功能的内容平台,帮助用户实现流量高效转化。查看源码 -
(自适应)HTML5响应式双语绿色物流运输快递货运pbootcms源码本款基于PbootCMS开发的网站模板为物流运输、快递货运行业设计,采用HTML5技术构建,支持简繁字体切换。模板设计充分考虑了货运物流行业的特点,可专业展示运输服务、物流网络和业务优势等内容。查看源码
| 分享笔记 (共有 篇笔记) |
