多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 目录规范 日常的开发中主要会涉及到source和template目录。虽然目录和文件都很多,但是实际上结构还是很清晰,大多数情况下通过文件名和目录就能知道某个文件的作用。比如: ~~~ \source\class\discuz\discuz_censor.php 用来处理敏感词过滤的类 \source\function\function_credit.php 处理积分操作的函数库 \source\module\forum\forum_viewthread.php 处理帖子显示页面的模块 ~~~ 另外,source目录下的class、function、module、include、admincp这几个文件夹下的程序文件命名要遵守如下规则:文件名前缀为所在目录的名字加上下划线(_) ~~~ 目录结构详细: /┬── api 外部接口 │ ├── connect 腾讯互联 │ ├── db UCenter数据库备份接口 │ ├── google Google引擎使用 │ ├── javascript 数据和广告的 JS调用 │ ├── manyou manyou应用及搜索等相关服务 │ └── trade 在线支付接口 ├── archiver 论坛静态化 ├── config 站点配置文件 ├── data 数据缓存及附件 │ ├── attachment 上传的文件目录 │ │ ├── album 相册专用 │ │ ├── block DIY专用 │ │ ├── common 公共上传 │ │ ├── forum 论坛附件专用 │ │ ├── group 群组图标和头部图片专用 │ │ ├── portal 门户上传文件专用 │ │ ├── profile 个人资料专用 │ │ └── temp 临时文件 │ ├── avatar 视频认证专用 │ ├── backup 站点数据备份 │ ├── cache 数据缓存 │ ├── diy DIY模块缓存 │ ├── ipdata Discuz!IP库 │ ├── log 站点日志,前/后台管理日志、错误日志等 │ ├── plugindata 插件缓存数据 │ ├── template 模板缓存目录 │ └── threadcache 帖子缓存 ├── install 安装目录 ├── source 代码主目录 │ ├── admincp 后台程序 │ │ ├── cloud Discuz!云平台 │ │ ├── menu 菜单 │ │ └── moderate 审核功能 │ ├── archiver 论坛静态化功能代码 │ ├── class 类文件目录 │ │ ├── adv 站点广告功能 │ │ ├── block DIY模块功能文件 │ │ ├── cache 缓存类 │ │ ├── db 数据库类 │ │ ├── discuz discuz类 │ │ ├── forum 论坛 │ │ ├── helper 存放从function_core分离出来的一部分函数 │ │ ├── lib 工具类的集合类 │ │ ├── magic 道具 │ │ ├── memory 内存类 │ │ ├── secqaa 验证问答 │ │ ├── table 数据表操作类 │ │ └── task 站点任务功能 │ ├── function 函数文件 │ │ └── cache 缓存功能拆分目录 │ ├── include 被包含的文件 │ │ ├── collection 淘帖 │ │ ├── cron 计划任务 │ │ ├── misc 杂项 │ │ ├── modcp 前台论坛管理 │ │ ├── portalcp 前台门户管理 │ │ ├── post 帖子相关 │ │ ├── search 搜索功能 │ │ ├── space 家园和个人相关功能 │ │ ├── spacecp 个人设置相关 │ │ ├── table 编码转换数据 │ │ ├── thread 查看主题相关 │ │ └── topicadmin 前台主题管理 │ ├── language 站点语言包 │ │ ├── adv 广告 │ │ ├── block DIY模块 │ │ ├── forum 论坛 │ │ ├── group 群组 │ │ ├── home 家园 │ │ ├── magic 道具 │ │ ├── member 登录注册页面语言 │ │ ├── mobile 手机访问功能语言 │ │ ├── portal 门户语言 │ │ ├── ranklist 排行榜语言 │ │ ├── search 搜索 │ │ ├── secqaa 安全问答 │ │ ├── tag 标签 │ │ ├── task 任务 │ │ └── userapp manyou应用 │ ├── module 功能模块 │ │ ├── connect 腾讯互联 │ │ ├── forum 论坛 │ │ ├── group 群组 │ │ ├── home 家园 │ │ ├── member 登录注册 │ │ ├── misc 杂项 │ │ ├── portal 门户 │ │ ├── search 搜索 │ │ └── userapp 应用 │ └── plugin 插件目录 │ ├── cloudstat Discuz!云平台 │ ├── myapp Manyou应用 │ ├── myrepeats 马甲功能 │ ├── qqconnect 腾讯互联 │ └── soso_smilies 腾讯搜搜表情 ├── static 非PHP文件 │ ├── image 界面图片 │ ├── js 站点JS脚本 │ ├── space 空间皮肤 │ └── topic 门户皮肤 ├── template 模板目录 │ └── default 默认风格 ├── uc_client UCenter客户端程序 └── uc_server UCenter服务端程序 ~~~ ## 开发规范 - FOHEART社区完全按Discuz开发规范进行 - 可以直接通过浏览器访问的普通程序文件,以 .php 后缀命名。 - 被普通程序文件引用的程序文件,以 .inc.php 后缀命名。 - 被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.php(函数库) 或 .class.php(类库) 后缀命名。 - 模板文件,以 .htm 后缀命名,插件模板文件存在于 source/plugin/identifier/template/ 目录中,手机版插件模板存在于 source/plugin/identifier/template/mobile/目录中 - 模板语言包文件,以 .lang.php 后缀命名,插件语言包文件开发时存放于 data/plugindata/ 目录中,文件名为identifier.lang.php。 - 动态缓存文件,存放于 ./data/cache 目录中,依据不同的功用进行独立的命名。 - 使用后台数据备份功能生成的备份文件,通常以 .sql 为后缀,存放于 data/ 目录中。 - 有些目录中存在内容为空白的 index.htm 文件,此类文件是为了避免 Web 服务器打开 Directory Index 时可能产生的安全问题。 - [X2.5新增内容] 从 Discuz! X2.5 开始,产品对数据表进行了封装,封装后的文件统一命名为 Table 类,通过“C::t(Table类文件名)”方式调用。插件如需封装自己的数据表,可将 Table 类文件存放于 source/plugin/identifier/table/ 目录下,并以 table_表名.php 格式命名,详见X2.5的新程序架构。