您现在的位置是:首页 > 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,并且初始化该类。在该类的初始化的过程的前半部分,主要完成了对参数和默认参数的处理,下面就是加载控制器了。
本文标签:
很赞哦! ()
相关教程
图文教程
phpcms投稿文章不能插入图片的解决方法
phpcms投稿文章不能插入图片?phpcms v9前台用户投稿页面编辑器不能上传图片?这是因为后台的上传图片的在前台上传没有权限的原因,必须管理员登录的后台,前台才可以上传东西。
PHPCMS替换主页、列表页、内容页的方法
利用phpcms制作企业站,首先要将静态的企业主页替换成后台可编辑的动态主页。在phpcms/install_package/phpcms/templates新建一个英文文件夹在此文件夹下在创建一个content文件夹
phpcmsv9操作失败怎么办
phpcms v9操作失败怎么办?phpcms v9用户注册登录 操作失败bug处理检查 phpsso_server\caches\configs下database.php和system.php这两个文件的配置
phpcms登陆注册失败的解决方法
检查phpsso_server\caches\configs下database.php和system.php这两个文件的配置把phpcms\modules\member\classes\client.class.php 361行
相关源码
-
(自适应)大气壁挂炉暖气设备家用电器模板带加盟申请和下载资料为壁挂炉、暖气片等供暖设备企业设计的PbootCMS模板,通过响应式技术实现跨终端展示产品参数和技术细节。后台统一管理确保采暖系统数据、服务网点信息实时同步更新查看源码 -
pbootcms源码宠物类网站源码下载(自适应多端)为宠物装备商店、宠物食品及用品企业打造的营销型模板,基于PbootCMS内核深度开发。采用响应式设计实现PC与移动端适配,PHP7.0+高性能架构支持MySQL/SQLite双数据库查看源码 -
(PC+WAP)蓝色五金机械设备营销型网站源码下载基于PbootCMS内核开发的营销型企业网站模板,为五金机械设备类企业打造,通过标准化数字展示提升客户转化率。模板采用模块化设计,可快速适配机床工具、建筑五金、阀门管件等细分领域。查看源码 -
(自适应响应式)环保水净化处理设备阀门等网站源码下载基于PbootCMS内核开发的响应式模板,为水处理设备、空气净化器等环保企业设计,自适应手机端浏览。通过简洁高效的后台管理系统,助力环保科技企业快速建立专业在线展示平台。查看源码 -
(自适应)绿色农业机械设备农场网站源码下载为现代农业机械领域打造的响应式网站模板,采用PbootCMS内核开发,数据实时同步后台管理。通过简洁大气的视觉设计,有效展示农机产品技术参数与应用场景,帮助客户快速建立专业数字化形象。查看源码 -
(自适应响应式)APP应用程序软件介绍落地页源码免费下载该模板为营销技术从业者设计,提供专业的内容展示平台。采用响应式布局,适配软件介绍、APP推广等营销场景,通过可视化后台可快速搭建符合行业特性的展示网站。查看源码
| 分享笔记 (共有 篇笔记) |
