PHPCMS V9 程序目录结构与核心文件作用详解

PHPCMS V9 是国内主流的 PHP 内容管理系统,采用 MVC 架构 + 单一入口模式,整体目录结构清晰、模块化强。以下是完整的目录结构、目录作用、核心文件代码作用的详细文档,适用于二次开发、系统维护与架构理解。

一、根目录结构与作用

1. 核心目录

目录名作用核心说明
api/对外接口目录存放系统对外提供的 API 接口文件(如数据接口、第三方对接接口),支持跨系统调用
caches/系统缓存主目录存储所有缓存数据(模板缓存、数据库缓存、配置缓存、权限缓存),提升系统响应速度
phpcms/框架核心主目录系统最核心目录,包含所有框架类库、模块、模型、函数、语言包
phpsso_server/单点登录服务目录独立的 SSO 单点登录系统,实现跨站、跨应用用户统一登录与身份验证
statics/静态资源目录存放系统公共 CSS、JS、图片、插件等静态文件,前后台共用
uploadfile/用户上传附件目录存储后台/前台上传的图片、文档、视频等所有附件文件

2. 根目录核心文件

文件名代码作用执行流程
index.php前台单一入口文件系统初始化 → 加载 base.php → 路由解析(m=模块/c=控制器/a=方法)→ 执行业务 → 渲染模板
admin.php后台单一入口文件后台登录验证 → 权限校验 → 加载后台模块 → 渲染后台模板
crossdomain.xmlFlash 跨域配置文件控制 Flash 跨域访问权限,解决前端 Flash 上传跨域问题
robots.txt搜索引擎爬虫规则限制搜索引擎抓取范围,保护后台、敏感目录不被收录
favicon.ico网站图标文件浏览器标签栏、收藏夹显示的网站小图标

二、核心目录深度解析

(一)caches/ 缓存目录(核心缓存存储)

caches/
├─ configs/       # 系统配置文件(数据库、系统、路由、站点)
│  ├─ database.php    # 数据库连接配置(主从库、字符集、账号密码)
│  ├─ system.php      # 系统全局配置(网站名、附件路径、SEO、水印)
│  ├─ route.php       # URL 路由规则配置(伪静态、自定义路由)
│  └─ sites.php       # 站群配置(多站点域名、目录、参数)
├─ cache/         # 系统运行缓存(模板编译、SQL 结果、栏目缓存)
├─ block/         # 碎片缓存(后台自定义碎片、广告缓存)
├─ model/         # 数据模型缓存(字段结构、表结构缓存)
└─ template/      # 模板编译缓存(HTML 模板编译为 PHP 执行文件)

(二)phpcms/ 框架核心目录(最关键)

1. phpcms/libs/ 系统类库目录(底层核心)

libs/
├─ classes/       # 系统核心基类(所有模块继承的基础类)
│  ├─ mysql.class.php    # 数据库操作类(CURD、事务、查询构建)
│  ├─ template.class.php # 模板引擎类(编译、渲染、变量分配)
│  ├─ param.class.php    # 参数解析类(GET/POST/COOKIE 过滤、安全校验)
│  ├─ upload.class.php   # 文件上传类(附件上传、格式校验、水印)
│  └─ http.class.php     # HTTP 请求类(CURL、接口调用、跨域)
├─ functions/     # 全局函数库(系统通用工具函数)
│  ├─ global.func.php    # 核心全局函数(字符串、数组、时间、加密)
│  └─ extention.func.php # 扩展函数(自定义、第三方兼容函数)
└─ helpers/       # 辅助类库(工具类、插件类)

2. phpcms/model/ 数据模型目录

  • 作用:数据库表映射模型,每个模型对应一张数据表,封装所有数据操作
  • 结构:模型名_model.class.php(如 content_model.class.php
  • 核心代码:
class content_model extends model {
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'content'; // 对应数据表
        parent::__construct();
    }
    // 自定义数据方法(列表、详情、添加、修改)
}

3. phpcms/modules/ 业务模块目录(MVC 核心)

模块化架构:每个子目录 = 1 个独立功能模块(content、member、admin、comment 等)

标准模块结构

modules/
├─ content/       # 内容模块(文章、栏目、模型管理,核心模块)
│  ├─ controllers/  # 控制器(处理请求、业务逻辑、调用模型)
│  │  └─ index.php  # 默认控制器(首页、列表、内容页)
│  ├─ models/       # 模块模型(当前模块专属数据操作)
│  ├─ templates/    # 后台模板(模块后台页面)
│  ├─ classes/      # 模块自定义类
│  └─ functions/    # 模块专属函数
├─ member/        # 会员模块(注册、登录、个人中心)
├─ admin/         # 后台管理模块(权限、菜单、系统设置)
└─ ... 其他模块

控制器核心代码(index.php)

defined('IN_PHPCMS') or exit('No permission resources.');
class index {
    public function __construct() {
        $this->db = pc_base::load_model('content_model'); // 加载模型
    }
    // 列表页方法(URL:?m=content&c=index&a=lists)
    public function lists() {
        $catid = $_GET['catid'];
        $data = $this->db->lists($catid); // 调用模型获取数据
        include template('content', 'list'); // 加载前台模板
    }
}

4. phpcms/templates/ 前台模板目录

templates/
└─ default/       # 默认模板风格(可新建多风格:mobile、blue 等)
   ├─ content/    # 内容模块模板(首页、列表、内容、栏目)
   │  ├─ index.html   # 首页模板
   │  ├─ list.html    # 列表页模板
   │  └─ show.html    # 内容详情页模板
   ├─ member/     # 会员模块模板
   ├─ header.html # 公共头部
   └─ footer.html # 公共底部

5. phpcms/languages/ 语言包目录

  • 作用:多语言支持,存放系统前台/后台语言文件
  • 结构:zh-cn/(中文)、en/(英文),文件:system.lang.phpadmin.lang.php

6. phpcms/base.php 框架引导文件(核心)

  • 作用:系统初始化入口,定义全局常量、自动加载类、加载配置、初始化环境
  • 核心代码:
defined('PHPCMS_PATH') or define('PHPCMS_PATH', dirname(__FILE__).'/');
defined('IN_PHPCMS') or define('IN_PHPCMS', true);
// 加载配置、函数、类库自动加载
pc_base::load_config();
pc_base::load_sys_func('global');
spl_autoload_register(array('pc_base', 'autoload'));

(三)statics/ 静态资源目录

statics/
├─ css/           # 系统公共样式(后台、前台基础 CSS)
├─ js/            # 系统公共 JS(jQuery、插件、表单验证)
├─ images/        # 系统公共图片(图标、按钮、背景)
└─ plugins/       # 第三方插件(编辑器、上传组件、图表)

(四)uploadfile/ 附件目录

  • 按日期归档:/2026/04/ 存储当月上传附件
  • 包含图片、文档、视频、压缩包等所有用户上传文件

三、系统执行流程(单一入口)

  1. 用户请求 → 访问 index.php(前台)或 admin.php(后台)
  2. 初始化 → 加载 phpcms/base.php,定义常量、加载配置、自动加载类
  3. 路由解析 → 解析 URL 参数m=模块/c=控制器/a=方法
  4. 业务处理 → 实例化控制器 → 调用模型操作数据库 → 处理数据
  5. 模板渲染 → 加载对应模板文件 → 分配变量 → 输出 HTML 页面

四、二次开发常用路径与函数

1. 常用路径常量

  • PHPCMS_PATH:系统根目录
  • CSS_PATH:静态 CSS 路径(/statics/css/)
  • JS_PATH:静态 JS 路径(/statics/js/)
  • UPLOAD_URL:附件访问 URL
  • TPL_PATH:模板路径

2. 常用加载函数

  • 加载系统类:pc_base::load_sys_class('类名')
  • 加载模型:pc_base::load_model('模型名')
  • 加载函数:pc_base::load_sys_func('函数名')
  • 加载模板:include template('模块','模板名')

五、安全与维护注意事项

  1. caches/configs/:数据库、系统配置文件,禁止外网直接访问
  2. uploadfile/:需设置上传权限(755),禁止执行 PHP(防止木马)
  3. phpcms/:核心代码目录,仅后台可写,前台只读
  4. statics/:静态资源可 CDN 加速,提升访问速度
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇