EDUSOHO踩坑笔记之四:edusoho的目录结构
中国古语说的好:山有多高,水就有多深。技术也是如此,edusoho是基于开源的symfony框架开发的;但凡用框架开发的系统,就会给人一种高大上的感觉了,尤其在配上一个能说会倒的布道者,讲的唾沫星子的横飞的时候,这个技术框架就让人高山仰止、顶礼膜拜了。也可能成为演讲者的泡妞神器了,说不定还能感化几个美女程序员,然后成功脱单了。
闲话少扯,还是回到正题,技术这个东西会在不难,难着不会!尤其是套上了技术框架的光环后,往往会给阅读者一个神秘的感觉,让人心生畏惧了!尤其是小菜鸟这个级别,遇上这个东西,就会抓耳挠腮,不知所终了。从本节开始就启动我们的破神旅程,逐渐深入edusoho的架构。
再神秘的程序和事情,都要有其构造和外形,虽然软件系统它是个逻辑体,但是作为一个运行的软件,必然就是由目录、文件等构成,这些目录和文件,通过面向对象机制、继承、依赖等技术,关系起来就形成了程序的框架:所以本章开始介绍edusoho的目录结构:在软件体系中,目录结构表现为树,那么我就下面就描述edusoho这个树:
edusoho/
| — app
| — src
| — Custom
| — AdminBundle
| — Webbundle
| — Topxia :Topxia Framework框架
| — AdminBundle 管理后台代码目录
| — Controller 控制器
| — DependencyInjection
| — Resources 资源
| — config
| — doc
| — translations 中英文版本对应提示
| — views 视图层对应相应的控制器:用到twig模板
| — Common 程序通用类
| — Component
| — DataTag 模板标签目录
| — MobileBundle
| — MobileBundelV2
| — Service 核心业务代码目录:业务逻辑层,相当于Modle层
| — User 用户服务
| — Dao Dao层 :数据持久化层
| — Imple 接口
| — AuthService.php
| — webBundle 前台界面代码目录
| — Command
| — Controller 控制器
| — DataDict
| — DependencyInjection
| — Resources 资源
| — config
| — doc
| — translations 中英文版本对应提示
| — views 视图层对应相应的控制器:用到twig模板
| — System.php 系统版本
| — vendor
| — composer php 依赖管理工具
| — doctrine php关联映射框架
| — endroid
| — ezyang
| — gregwar
| — imagine 图形处理类库
| — jdorn
| — kriswallsmith
| — monolog php日志记录工具
| — phpoffice phpexcel
| — psr
| — sensio
| — swiftmailer php邮件类
| — symfony
| — twig 模板引擎
| — autoload.php
| — vendor_user
| — web
| — assets 资源库
| — css
| — fonts
| — img
| — libs 外部组件库目录,包括: 1.seajs 2. jquery 3.
| — seajs sea.js组件
| — gallery
| — backbone 为复杂的javascript提供模型
| — handlebars javascript 语义模板库
| — json json转化工具
| — moment javacript 日期处理类库
| — morris 生成各种时序图
| — rapheal 在网页中生成矢量图的类库
| — selection
| — swfobject 在html中方便插入swf的javascript类库
| — underscore
| — gallery2
| — bootstrap 前段框架:bootstrap
| — kindeditor 编辑器组件
| — mediaelement html5视频播放器
| — swfupload 文件上传工具
| — video-js 视频播放插件
| — webuploader 文件上传工具
| — juqery jquery 类库
| — jquery-plugin jquery类库
| — jquery.colorbox jquery类库
| — jquery.countdown jquery类库
| — player
| — screenfull javacricpt 全屏插件
| — store 实现本地存在
| — html5shiv.js 让不支持html5的浏览器正常运行IE6 IE7 IE8
| — respond.js 让不支持CSS3 的浏览器 提供支持
| — seajs-global-config.js 暂时不知道干什么
| — bundles 程序前后台资源文件:js css
| — themes 程序主题目录
| — app_dev.php 开发环境下程序入口文件
| — app.php 部署环境下程序入口文件
上面是edusoho早期的版本的树结构描述,发展到今天已经到了V8.6.20版本,以上的目录结构已经发生了中大的改变,但上面的部分目录仍然存在,对开发者仍然具有借鉴和指导意义。下面一节开始介绍edu后台的结构目录。