您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS源码底层分析phpcms\base.php
卢邦楠2025-05-29 22:49:01phpcms教程已有5人查阅
导读我试着解析这个文件的代码,但是发现很乱很杂,现在规整一下,该文件包含一个很重要的类为pc_base,也就是PHPCMS的核心类,这个类中有几个很重要的方法(在模块开发中一定会经常出
我试着解析这个文件的代码,但是发现很乱很杂,现在规整一下,该文件包含一个很重要的类为pc_base,也就是PHPCMS的核心类,这个类中有几个很重要的方法(在模块开发中一定会经常出现),所以很有必要单独拿出来一点空间来简述一下几个方法的作用:
creat_app 初始化PHPCMS应用程序
load_sys_class 加载系统类的方法。
load_app_class 加载应用类的方法
load_model 加载数据模型
_load_class 加载类文件函数
load_sys_func 加载系统的函数库
auto_load_func 自动加载autoload目录下函数库
load_app_func 加载应用函数库
load_plugin_class 加载插件类库
load_plugin_func 加载插件函数库
load_plugin_model 加载插件数据模型
_load_func 加载函数库
_auto_load_func自动加载函数库
my_path 是否有自己的扩展文件
load_config 加载配置文件
呵呵光这一个类就很多方法,实在是让人很无语。但是不要气馁,加油继续奋进,往下阅读。
[code=php]
定义一个类,名字叫pc_base
class pc_base {
初始化应用程序,注意该方法标识符为static,那么在使用的时候需要注意要用pc_base::creat_app()这样的方式来使用,这也应了index.php入口文件的写法了^_^。
public static function creat_app() {
加载系统类,application。当然这个方法在下面。 注意!这个是加载应用类方法 如果$m为空,且有定义ROUTE_M 这个常量,则取值ROUTE_M 否则取值$m 如果$m为空 返回false 依然是这个方法。呵呵 这个方法被使用过很多次,现在系统的研究一下这个方法 定义一个静态的数组 如果$path(扩展地址)为空 ,则给$path赋值为 libs / classes ,也就是目录为/phpcms/libs/classes 取得/phpcms/libs/classes + 你的所要的类名的 MD5 值 如果$classes静态数组中,存在(预设) 这个key为md5的值 如果 $classes静态数组中,存在(预设) 这个key为md5的值 不为空 则返回这个值。我猜想这里直接返回一个对象吧? 继续向下看才能知道 注意! 这里是静态数组中没有md5 值会走到这里
这里的PC_PATH常量我还没粘过来代码,但是他所代表的目录是base.php所在的文件目录,也就是/phpcms
如果文件存在于 /phpcms/libs/classes/ 你的类名 + .class.php 就去包含这个文件 声明一个变量name,给他值为你的类名 这个my_path的方法可以在下面找到,你可以直接跳过去查看。这里的意思是
如果在 /phpcms/libs/classes/有你的类,且有一个文件叫MY_你的类名 的文件的话赋值给 包含这个文件 如果进行初始化 返回被new的这个对象或true的值
creat_app 初始化PHPCMS应用程序
load_sys_class 加载系统类的方法。
load_app_class 加载应用类的方法
load_model 加载数据模型
_load_class 加载类文件函数
load_sys_func 加载系统的函数库
auto_load_func 自动加载autoload目录下函数库
load_app_func 加载应用函数库
load_plugin_class 加载插件类库
load_plugin_func 加载插件函数库
load_plugin_model 加载插件数据模型
_load_func 加载函数库
_auto_load_func自动加载函数库
my_path 是否有自己的扩展文件
load_config 加载配置文件
呵呵光这一个类就很多方法,实在是让人很无语。但是不要气馁,加油继续奋进,往下阅读。
[code=php]
定义一个类,名字叫pc_base
class pc_base {
初始化应用程序,注意该方法标识符为static,那么在使用的时候需要注意要用pc_base::creat_app()这样的方式来使用,这也应了index.php入口文件的写法了^_^。
public static function creat_app() {
加载系统类,application。当然这个方法在下面。 注意!这个是加载应用类方法 如果$m为空,且有定义ROUTE_M 这个常量,则取值ROUTE_M 否则取值$m 如果$m为空 返回false 依然是这个方法。呵呵 这个方法被使用过很多次,现在系统的研究一下这个方法 定义一个静态的数组 如果$path(扩展地址)为空 ,则给$path赋值为 libs / classes ,也就是目录为/phpcms/libs/classes 取得/phpcms/libs/classes + 你的所要的类名的 MD5 值 如果$classes静态数组中,存在(预设) 这个key为md5的值 如果 $classes静态数组中,存在(预设) 这个key为md5的值 不为空 则返回这个值。我猜想这里直接返回一个对象吧? 继续向下看才能知道 注意! 这里是静态数组中没有md5 值会走到这里
这里的PC_PATH常量我还没粘过来代码,但是他所代表的目录是base.php所在的文件目录,也就是/phpcms
如果文件存在于 /phpcms/libs/classes/ 你的类名 + .class.php 就去包含这个文件 声明一个变量name,给他值为你的类名 这个my_path的方法可以在下面找到,你可以直接跳过去查看。这里的意思是
如果在 /phpcms/libs/classes/有你的类,且有一个文件叫MY_你的类名 的文件的话赋值给 包含这个文件 如果进行初始化 返回被new的这个对象或true的值
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
PHPCMS v9.6.0任意用户密码重置的方法
他分析的好像不对。我用我的在分析一次。先来看poc:根据phpcms的框架,定位到源码地址/phpcms/modules/member/index.php 第267到312行phpcmsV9框架目录结构分析说明
了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识打开"mycms"项目,有如下文件和目录使用协议说明文档、英文版的用户手册,这两项不是项目所必须的phpcmsV9二次开发简明手册
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,之后控制器用相应的视图格式化模型返phpcmsV9MVC模式URL访问解析方法
观察访问网页时的网址,可以得出模块访问方法。关于此URL解析如下:m = content 为模块/模型名称 位于phpcms/modules/content (必须项)c = index 为控制器名称 位于phpcms/modules/content/index.php (必须项)
留言与评论 (共有 0 条评论) |