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后台的结构目录。