include 文件夹是什么?
include 文件夹是 DedeCMS 的核心功能库和公共组件存放目录,你可以把它想象成一个“工具箱”或“零件库”,DedeCMS 的各个页面(如首页、列表页、内容页)在运行时,都会从这个“工具箱”里拿出所需的工具(即PHP文件)来使用,以避免重复编写代码,提高开发效率和系统的可维护性。

它存放了大量被全局或局部引用的 PHP 文件,用于实现各种功能,如数据库连接、函数定义、类库、前台和后台的公共模块等。
include 文件夹里有什么?(核心文件解析)
include 文件夹内部结构清晰,主要分为几个部分:
common.inc.php - 基石文件
这是整个 DedeCMS 系统的核心配置和初始化文件,几乎所有的 PHP 页面(无论是前台还是后台)在执行最开始时都会首先引入这个文件。
它的主要作用包括:

- 数据库连接:加载并执行数据库连接配置 (
common.config.php)。 - 核心常量定义:定义了网站根目录、CMS根目录、安装目录、缓存目录等大量系统常量,方便全局调用。
- 加载公共函数库:引入了
inc_fun_funAdmin.php等核心函数文件。 - 初始化环境:设置字符集、时区、安全过滤等。
- 加载核心类库:引入了
dedesql.class.php(数据库操作类)、dedetemplate.class.php(模板引擎类)等。
重要性:common.inc.php 出错,整个网站很可能都无法正常运行,它是 DedeCMS 的“心脏”。
inc/ - 函数和类库文件夹
这个目录下存放了大量的 .php 文件,每个文件通常负责一个或一类特定的功能。
inc_fun_funAdmin.php:后台管理常用函数库,包含了很多后台操作会用到的函数,如GetCateList()(获取栏目列表)、GetMemberFields()(获取会员字段) 等。inc_archives_view.php页(文章模型)的核心逻辑文件,当你访问一篇文章时,系统会调用这个文件来处理文章的读取、字段关联、点击量更新、上一篇/下一篇链接生成等所有逻辑,这是内容页模板 (article_article.htm) 背后的“大脑”。inc_type_tree.php:用于生成栏目树形结构的函数,在后台管理栏目、在前台调用栏目时都会用到。inc_downphil.php:下载相关功能处理文件,用于处理附件下载、权限验证等。inc_photograph.php:图片模型内容页的核心逻辑文件,与inc_archives_view.php类似,但专门用于处理图片集内容。inc_sitemap.php:生成网站地图(sitemap)的逻辑文件。inc_seccode.php:验证码相关的逻辑文件。
开发重点:在进行二次开发时,你经常需要修改或参考这个目录下的文件,尤其是内容页对应的逻辑文件(如 inc_archives_view.php)。
tags/ - 自由标签文件夹
这个目录存放了所有自由标签 的解析类,自由标签是 DedeCMS一个非常强大的功能,允许你在模板中通过简单的代码调用复杂的数据。
- 文件命名规则通常是
lib_[标签名].php。 lib_channel.php负责解析{dede:channel}标签,lib_list.php负责解析{dede:list}- 当你在模板中写下一个标签后,DedeCMS 的模板引擎会在这里找到对应的解析文件,执行其中的PHP代码,并将结果返回给模板。
自定义标签:如果你想开发自己的自由标签,就需要在这个目录下创建一个新的解析类文件。
helpers/ - 辅助类文件夹
这个目录主要存放一些独立的、功能单一的PHP类(Helper Classes)。
string.helper.php:字符串处理助手类,包含各种字符串操作方法,如截取、过滤、加密等。array.helper.php:数组处理助手类,提供数组相关的便捷操作。file.helper.php:文件处理助手类,用于文件读写、目录操作等。
使用这些类可以让代码更加面向对象和模块化。
其他重要文件
config.cache.inc.php:配置文件缓存,为了提高性能,DedeCMS 会把一些核心配置(如数据库配置、网站基本设置)缓存到这个文件中,后台修改配置后,这个文件会被更新。userlogin.class.php:用户登录验证类,处理会员或管理员的登录、权限验证等逻辑。dialog/:目录,存放了后台弹出窗口(如图片上传、文件选择)相关的PHP文件。
include 文件夹的工作原理(以文章页为例)
当你通过浏览器访问一篇文章,https://www.yoursite.com/a/1.html 时,服务器内部发生了什么:
- URL重写:DedeCMS 的重写规则将
html转发给plus/view.php?arcID=1。 - 引入核心文件:
plus/view.php脚本的第一行代码几乎总是require_once(dirname(__FILE__).'/../include/common.inc.php');,这加载了整个系统的基石。 - 获取文章ID:
view.php从URL参数中获取文章ID(arcID=1)。 - 逻辑:
view.php接着引入专门处理文章内容的逻辑文件:require_once(DEDEINC.'/inc/archives_view.php');。 - 执行逻辑:
archives_view.php文件开始工作,它根据文章ID从数据库中读取文章的所有数据,包括标题、内容、作者、点击量、相关文章等。 - 应用模板:系统加载文章对应的模板文件
templets/default/article_article.htm。 - 解析标签:模板引擎(在
common.inc.php中加载)开始解析article_article.htm中的所有变量(如{dede:field.title/})和标签(如{dede:field.body/}),它会调用include/tags/和其他相关目录下的PHP文件来获取这些标签需要的数据。 - 生成并输出:
archives_view.php将从数据库获取的数据填充到模板中,生成完整的HTML页面,并返回给浏览器。
在这个过程中,include 文件夹就像一个中央处理器,为 view.php 提供了所有必需的功能模块。
为什么需要了解 include 文件夹?
- 模板修改:当你需要修改文章页的显示逻辑,比如改变“相关文章”的调用方式或增加自定义字段的显示时,你需要修改
include/inc/archives_view.php。 - 二次开发:开发新的模块或功能时,你可能会需要创建新的PHP文件,并遵循
include文件夹的组织方式,将公共函数或类放在include/inc/目录下。 - 问题排查:当网站出现白屏、错误时,根据错误信息定位到
include文件夹中的某个文件,是快速排查问题的关键一步。 - 性能优化:了解哪些文件被频繁加载,有助于你进行缓存优化或代码重构。
include 文件夹是 DedeCMS 的“后台”和“引擎”,它将系统的核心逻辑、公共函数、类库和标签解析器集中管理,使得前台模板文件(.htm)可以保持简洁,只负责展示,对于任何希望深入 DedeCMS 的开发者或站长来说,透彻理解 include 文件夹的结构和作用,是从“会用”到“精通”的必经之路。
