# 目录结构

## 简介

ecshopX 的 API 层基于 Lumen 框架开发，根据商派在电商领域的多年经验对其做了一些调整，主要调整如下：

* 目录结构调整：除基本配置目录外，lumen自带的app目录基本已经废弃，借鉴商派ecos及symfony思想，ecshopx引入了 Bundle，每个Bundle包含了一个独立的业务。
* ORM调整：Lumen底层基于 Laravel 开发，所以 Luemn 底层ORM采用Laravel 的 Eloquent ORM实现来和数据库进行交互。考虑到更灵活的SQL能力，我们采用了Doctrine ORM。

## 根目录

| 文件/目录         | 描述                                                                                    |
| ------------- | ------------------------------------------------------------------------------------- |
| **app**       | 在 Lumen 中 app 目录包含了应用的核心代码，在ecshopx中不用关心此目录的内容                                        |
| **bootstrap** | 在 app.php 中注册 ServiceProvider ，在route.php中注册各个Bundle的路由文件                             |
| **config**    | config 目录包含了应用所有的配置文件，建议通读一遍这些配置文件以便熟悉所有配置项                                           |
| **database**  | 包含了数据迁移及填充文件                                                                          |
| **public**    | public 目录包含了入口文件 index.php                                                            |
| **routes**    | 目录包含了 Bundle 的所有路由定义                                                                  |
| **src**       | 存放 Bundle 的目录                                                                         |
| **storage**   | storage 目录包含了编译过的Blade模板、基于文件的session、文件缓存，以及其它由框架生成的文件，该目录被细分为成app、framework和logs子目录 |
| **vendor**    | vendor目录包含所有Composer依赖                                                                |
