
Phpcms 的自动加载机制主要依赖于框架自带的 类自动加载 功能,不需要像 Composer 那样手动配置 autoload 文件。Phpcms(特别是 Phpcms V9)使用的是自定义的类加载方式,通过统一入口和命名规范实现自动加载。
1. 确保目录结构和命名规范正确
Phpcms 自动加载依赖于固定的目录结构和文件命名规则:
• 控制器类文件放在 /phpcms/modules/模块名/ 目录下,文件名为 模块名.php,类名也必须是 模块名 • 模型类文件放在 /phpcms/model/ 目录下,文件名为 表名_model.class.php,类名格式为 表名_model • 库类(libraries)放在 /phpcms/libs/classes/,文件名为 类名.class.php,类名与文件名一致
例如:创建一个 Sms 类,应放在 /phpcms/libs/classes/sms.class.php,类定义为:
class sms { … }
立即学习“PHP免费学习笔记(深入)”;
2. 使用 pc_base::load_app_class() 加载应用类
在模块中调用其他类时,使用框架提供的加载方法:
• pc_base::load_app_class(‘类名’, ‘模块名’) —— 加载某个模块下的类 • pc_base::load_sys_class(‘类名’) —— 加载系统核心类(如 db、form 等) • pc_base::load_model(‘模型名’) —— 加载 model 目录下的模型类
示例:
$this->sms = pc_base::load_app_class(‘sms’, ‘member’);这会自动加载 /phpcms/modules/member/classes/sms.class.php
3. 自定义类的自动加载(扩展使用)
如果想添加自己的类并实现“自动加载”,可以:
• 将类放入 /phpcms/libs/classes/ 并遵循命名规范 • 使用 pc_base::load_sys_class(‘yourclass’) 调用,框架会自动查找并包含 • 或者在初始化时通过 require/include 手动引入(不推荐)
注意:Phpcms 没有使用 PHP 的 spl_autoload_register() 实现全自动加载,而是通过函数封装 include 逻辑,所以“自动”是基于约定路径 + 加载函数配合实现的。
4. 常见问题处理
• 类找不到?检查文件路径、命名是否匹配 • 类名大小写敏感?Linux 服务器注意大小写一致性 • 修改类后无生效?清空缓存(/caches/ 目录)
基本上就这些。Phpcms 的类加载靠的是“规范 + 加载函数”,只要按规则放文件,用正确的函数调用,就能正常使用自动加载功能。

评论(0)