您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcmsv9源码base.php解析
半梦2025-05-25 21:49:33phpcms教程已有11人查阅
导读base.php在上文已经说过,是在PC中重要的一个文件,基本常量、核心类文件的加载都由它来完成。9行,定义了一个常量 IN_PHPCMS
base.php在上文已经说过,是在PC中重要的一个文件,基本常量、核心类文件的加载都由它来完成。
9行,定义了一个常量 IN_PHPCMS,在系统的入口定义一个常量,在其他文件就判断是否这个常量被定义,防止某人直接越过框架直接进入某些页面,
这个常量在后面的模块、模型操作文件中都会存在,以后朋友们在开发的时候也要严格按照这个要求和规范。
12-26行,主要定义了很多常量,这里主要是对$_SERVER这个服务器变量的运用,打印这个数组便知晓了。
HTTP_REFERER这个常量在后面会经常用到,它只要用于返回上级,在PC中经常很showmessage一起用。如showmessage('参数错误', HTTP_REFERER);
SYS_START_TIME在这里是为后面的程序执行效率做准备的,在系统函数/phpcms/libs/functions/global.func.php里第260行的execute_time()函数结合来用,可得出程序的执行时间。
27-60行,基本上是没法聊下去了,因为这里面基本上都和pc_base这个PC的核心类有关,我们暂时先把这一块放在这,聊完了pc_base这个类,这几段代码也就能明白了,
pc_base这个类过长,也没法很好的截图,那么我就直接以代码行数来定位坐标,方便大家阅读。
pc_base是一个类文件,关于这个类大家需要先清楚静态方法及静态变量,不明白的朋友要先恶补一下,否则将不好理解。
pc_base这个类里面的方法很多都异曲同工,我们拿几个典型的方法来开刀,他是load_sys_class 。(以下代码解释以Cnblogs的代码编辑器为主,所以同学们要打开原代码以对准行数) 76-78行,从注释上看的出来,load_sys_class方法的三个参数分别是类名称,路径和是否实例化。同时把3个变量传入了_load_class方法,那么_load_class便是我们需要重点研究的方法了。 107行,static变量,我做项目来使用static主要是俩个方面1、算数累加 2、判断是否重复。
108行,如果$path为空,那么路径就为libs/class/这个目录,同时这也是系统的类库,开发过程可以把第三方类库放这里。
110行,加密了路径和名称,目前还不知道作用,我们先往下看。
111-117行,判断设置了$classes[$key],目前程序走到这里,这个判断是false,但具体作用我们还不知道,先放着,继续往下看。
113-114行,如果这个文件存在,那么加载它。
115-118行,这个主要是判断是否有自己的方法,以防升级出错。
117-121行, 这里$initialize为真就初始化这个类,同时赋值给$classes[$key],看到这里你就该明白111-117行为什么要做这个判断了吗?如果这个变量有值得话表示已经加载过了就不在重复加载以确保执行效率。这里在多说一点,变量$initialize =0或是1的区别在于加载类文件之后是继承还是使用里面的方法。
这个方法到这里算结束了,主要是加载你指定的类文件,如果文件已经加载过了就不重复加载,然后执行是否初始化这个操作。
load_sys_class($classname, $path = '', $initialize = 1) /phpcms/libs/classes/$classname.class.php
load_app_class($classname, $m = '', $initialize = 1) /phpcms/modules/ROUTE_M/classes/$classname.class.php
load_model($classname) /phpcms/model/$classname.class.php
load_sys_func($func) /phpcms/libs/functions/$func.func.php
load_app_func($func, $m = '') 如果 $m为空/phpcms/modules/ROUTE_M/functions/$func.func.php 否则 /phpcms/modules/$m/functions/$func.func.php
9行,定义了一个常量 IN_PHPCMS,在系统的入口定义一个常量,在其他文件就判断是否这个常量被定义,防止某人直接越过框架直接进入某些页面,
这个常量在后面的模块、模型操作文件中都会存在,以后朋友们在开发的时候也要严格按照这个要求和规范。
12-26行,主要定义了很多常量,这里主要是对$_SERVER这个服务器变量的运用,打印这个数组便知晓了。
HTTP_REFERER这个常量在后面会经常用到,它只要用于返回上级,在PC中经常很showmessage一起用。如showmessage('参数错误', HTTP_REFERER);
SYS_START_TIME在这里是为后面的程序执行效率做准备的,在系统函数/phpcms/libs/functions/global.func.php里第260行的execute_time()函数结合来用,可得出程序的执行时间。
27-60行,基本上是没法聊下去了,因为这里面基本上都和pc_base这个PC的核心类有关,我们暂时先把这一块放在这,聊完了pc_base这个类,这几段代码也就能明白了,
pc_base这个类过长,也没法很好的截图,那么我就直接以代码行数来定位坐标,方便大家阅读。
pc_base是一个类文件,关于这个类大家需要先清楚静态方法及静态变量,不明白的朋友要先恶补一下,否则将不好理解。
pc_base这个类里面的方法很多都异曲同工,我们拿几个典型的方法来开刀,他是load_sys_class 。(以下代码解释以Cnblogs的代码编辑器为主,所以同学们要打开原代码以对准行数) 76-78行,从注释上看的出来,load_sys_class方法的三个参数分别是类名称,路径和是否实例化。同时把3个变量传入了_load_class方法,那么_load_class便是我们需要重点研究的方法了。 107行,static变量,我做项目来使用static主要是俩个方面1、算数累加 2、判断是否重复。
108行,如果$path为空,那么路径就为libs/class/这个目录,同时这也是系统的类库,开发过程可以把第三方类库放这里。
110行,加密了路径和名称,目前还不知道作用,我们先往下看。
111-117行,判断设置了$classes[$key],目前程序走到这里,这个判断是false,但具体作用我们还不知道,先放着,继续往下看。
113-114行,如果这个文件存在,那么加载它。
115-118行,这个主要是判断是否有自己的方法,以防升级出错。
117-121行, 这里$initialize为真就初始化这个类,同时赋值给$classes[$key],看到这里你就该明白111-117行为什么要做这个判断了吗?如果这个变量有值得话表示已经加载过了就不在重复加载以确保执行效率。这里在多说一点,变量$initialize =0或是1的区别在于加载类文件之后是继承还是使用里面的方法。
这个方法到这里算结束了,主要是加载你指定的类文件,如果文件已经加载过了就不重复加载,然后执行是否初始化这个操作。
load_sys_class($classname, $path = '', $initialize = 1) /phpcms/libs/classes/$classname.class.php
load_app_class($classname, $m = '', $initialize = 1) /phpcms/modules/ROUTE_M/classes/$classname.class.php
load_model($classname) /phpcms/model/$classname.class.php
load_sys_func($func) /phpcms/libs/functions/$func.func.php
load_app_func($func, $m = '') 如果 $m为空/phpcms/modules/ROUTE_M/functions/$func.func.php 否则 /phpcms/modules/$m/functions/$func.func.php
本文标签:
很赞哦! (1)
上一篇:phpcmsV9首页模板文件解析
暂无内容 |
暂无内容 |
暂无内容 |
暂无内容 |
随机图文
phpcms安装和卸载文件的步骤方法
一、安装文件①languages文件夹语言包:zh-cn\order.lang.php②templates文件夹(可不写)③config.inc.php④extention.inc.phpphpcms有评论功能吗,phpcms评论功能介绍
phpcms有评论功能。phpcms内置评论模块,提供了让网站的浏览者发布自己见解的功能,使得浏览者可以互动,相互交流自己的看法,来增加网站人气。PHPCMS的评论用户留言的功能phpcms模版目录存放位置
phpcms模版目录在网站根目录下的phpcms/templates/default/这个目录中,主要网站前端的内容模板在default/content里。phpcmsv9源码pc_base::creat_app()参数说明
在前面我们已经知道了,这个load_sys_classs静态方法,它加载了PC_CMS/libs/classes/application.class.php默认的这个函数这个方法是实例化的,所以我们找到application.class.php
留言与评论 (共有 0 条评论) |