dede include文件夹

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

include 文件夹是什么?

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

dede include文件夹
(图片来源网络,侵删)

它存放了大量被全局或局部引用的 PHP 文件,用于实现各种功能,如数据库连接、函数定义、类库、前台和后台的公共模块等。


include 文件夹里有什么?(核心文件解析)

include 文件夹内部结构清晰,主要分为几个部分:

common.inc.php - 基石文件

这是整个 DedeCMS 系统的核心配置和初始化文件,几乎所有的 PHP 页面(无论是前台还是后台)在执行最开始时都会首先引入这个文件。

它的主要作用包括:

dede include文件夹
(图片来源网络,侵删)
  • 数据库连接:加载并执行数据库连接配置 (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 时,服务器内部发生了什么:

  1. URL重写:DedeCMS 的重写规则将 html 转发给 plus/view.php?arcID=1
  2. 引入核心文件plus/view.php 脚本的第一行代码几乎总是 require_once(dirname(__FILE__).'/../include/common.inc.php');,这加载了整个系统的基石。
  3. 获取文章IDview.php 从URL参数中获取文章ID(arcID=1)。
  4. 逻辑view.php 接着引入专门处理文章内容的逻辑文件:require_once(DEDEINC.'/inc/archives_view.php');
  5. 执行逻辑archives_view.php 文件开始工作,它根据文章ID从数据库中读取文章的所有数据,包括标题、内容、作者、点击量、相关文章等。
  6. 应用模板:系统加载文章对应的模板文件 templets/default/article_article.htm
  7. 解析标签:模板引擎(在 common.inc.php 中加载)开始解析 article_article.htm 中的所有变量(如 {dede:field.title/})和标签(如 {dede:field.body/}),它会调用 include/tags/ 和其他相关目录下的PHP文件来获取这些标签需要的数据。
  8. 生成并输出archives_view.php 将从数据库获取的数据填充到模板中,生成完整的HTML页面,并返回给浏览器。

在这个过程中,include 文件夹就像一个中央处理器,为 view.php 提供了所有必需的功能模块。


为什么需要了解 include 文件夹?

  • 模板修改:当你需要修改文章页的显示逻辑,比如改变“相关文章”的调用方式或增加自定义字段的显示时,你需要修改 include/inc/archives_view.php
  • 二次开发:开发新的模块或功能时,你可能会需要创建新的PHP文件,并遵循 include 文件夹的组织方式,将公共函数或类放在 include/inc/ 目录下。
  • 问题排查:当网站出现白屏、错误时,根据错误信息定位到 include 文件夹中的某个文件,是快速排查问题的关键一步。
  • 性能优化:了解哪些文件被频繁加载,有助于你进行缓存优化或代码重构。

include 文件夹是 DedeCMS 的“后台”和“引擎”,它将系统的核心逻辑、公共函数、类库和标签解析器集中管理,使得前台模板文件(.htm)可以保持简洁,只负责展示,对于任何希望深入 DedeCMS 的开发者或站长来说,透彻理解 include 文件夹的结构和作用,是从“会用”到“精通”的必经之路。

-- 展开阅读全文 --
头像
c语言程序开发范例宝典 源代码
« 上一篇 01-04
power by dede58
下一篇 » 01-04

相关文章

取消
微信二维码
支付宝二维码