**Magento的目录结构** 在magento开发过程中,我们平时最多关注的是 app,lib,vendor三个目录: ![](https://img.kancloud.cn/36/6c/366cc4be0f9259c563de212717812495_457x356.png) **app目录解析** app目录是我们平时开发中接触到最多的。 下面看一下app目录结构: ``` app |-- autoload.php |-- bootstrap.php |-- code |-- design | |-- adminhtml | | `-- Magento | `-- frontend | `-- Magento |-- etc | |-- NonComposerComponentRegistration.php | |-- config.php | |-- db_schema.xml | |-- di.xml | |-- env.php | |-- registration_globlist.php | `-- vendor_path.php `-- functions.php ``` **app/design :** 顾名思义,design为主题目录。 在对magento定制主题,新建模板,css,js等文件都放在该目录下。如果我们是对系统的模块进行重写,etc/layout布局文件也放在主题目录中。 **app/code:** 默认安装完是没有code目录的,在对magento系统功能修改,重写,新添加module时,后端代码将全部写在这个目录下。如: Controller文件 Block文件 Model文件 etc目录下xml配置文件(除布局文件外)如,路由,module.xml,di.xml,api等。 <blockquote class='danger'>在开发主题相关功能时,app/code 和 app/design目录通常会配合起来.app目录可以看作为:二次开发,修改,定制的开发目录.</blockquote> app/etc: 项目配置目录,包括模块相关配置的config.php文件,项目全局配置的env.php文件。 functions.php:公共函数文件,可以在该文件中自定义公共函数。 **lib目录解析** ![](https://img.kancloud.cn/e9/37/e937eaa56f44f0c3cd063c6b220450c4_232x91.png) lib目录下面我们关注最多的是web目录。 web目录包含了magento系统大部分前端ui组件,第三库库等。 ![](https://img.kancloud.cn/df/db/dfdb5b19d5cc8caabe0d5de8f78f079a_438x709.png) lib/storege.js 这里面封装了前端对于cookie,storege等数据存取的方法。 mage 这个目录下封装了大量magento系统级别的前台页面,后台页面用到的各种组件,及js库文件等. requirejs require库的存放位置,magento的js文件大部分以requirejs的方式引入。 tiny\_ace4 后台富文本编辑器的第三方插件库。 jquery.js <blockquote class='danger'>lib目录可以看作为:Magento框架的前端框架库</blockquote> **vendor目录解析** vendor目录包含了后端所有模块,magento的framework,zend框架,第三方包等。 我们在开发中关注最多的目录是vendor/magento ![](https://img.kancloud.cn/0d/22/0d22dbc28efe26eb0e5ceaabb90b5f5b_422x167.png) * 以framework开头的目录为magento的核心底层框架。 * 以language开头的目录为magento的系统语言包文件。 * 以theme-xxx开头的目录为magento的系统主题目录。 * 以module-xxx开头的目录为magento的模块目录。 下面列举几个模块: ![](https://img.kancloud.cn/fb/d3/fbd35dce69ff1ba57b65d4fb575ef66b_440x474.png) 1. module-catalog: 商品分类,商品相关模块。 2. module-catalog-search:商品搜索相关模块。 3. module-checkout:订单相关模块。 <blockquote class='danger'>vendor目录可以看作为:Magento的后端框架及业务逻辑目录。</blockquote> <blockquote class='info'>在平时的开发中,由于需要修改magento原有的功能或者页面,将会接触到更多magento目录下的以module开头的目录及文件。</blockquote>