FrameworkStructure - marmot-cn/marmot-framework GitHub Wiki
marmot框架目录结构
结构
* src
* Adapter
* Classes
* Command
* Controller
* Interfaces
* Observer
* Query
* Strategy
* View
* config.php
* errorConfig.php
* errorDesciptionConfig.php
* Framework.php
* MarmotCore.php
目录
1. Adapter 文件夹
适配器文件夹
2. Classes 文件夹
Classes文件夹
- Cache.php:
- CommandBus.php:
- Controller.php:
- Db.php:
- Error.php:
- Filter.php:
- MyPdo.php:
- NullCommandHandler.php:
- NullTranslator.php:
- Repository.php:
- Request.php:
- Response.php:
- Server.php:
- Transaction.php:
3. Command 文件夹
命令文件夹
- Cache:缓存文件夹
- DelCacheCommand.php:删除缓存命令文件,继承底层框架
DelCacheCommand
- SaveCacheCommand.php: 添加缓存命令文件,继承底层框架
SaveCacheCommand
- DelCacheCommand.php:删除缓存命令文件,继承底层框架
4. Controller 文件夹
控制层文件夹
- ErrorController.php:暂未使用
- JsonApiTrait.php:
5. Interfaces 文件夹
接口文件夹
- DbLayer.php:Db层接口文件,针对Db层操作CRUD解耦;
- IMediaTypeStrategy.php:媒体类型接口文件;
6. Observer 文件夹
观察者文件夹,存放观察者相关文件
- CacheObserver.php:缓存观察者文件;
- Subject.php:观察者subject文件,继承底层框架的
Subject
- NullObserver.php:观察者 Null状态文件,继承底层框架的
NullObserver
,此处主要体现多态,Null Object模式; - NullSubject.php:观察者subject Null状态文件,继承底层框架的
NullSubject
,此处主要体现多态,Null Object模式;
7. Query 文件夹
Query文件夹
- DataCacheQuery.php:数据缓存Query文件,针对数据缓存的抽象类,继承底层框架
DataCacheQuery
; - DBVectorQuery.php:Db层关系缓存Query文件,针对Db层的关系缓存,继承marmot框架的
VectorQuery
; - FragmentCacheQuery.php:片段缓存Query文件,针对片段缓存的抽象类,继承底层框架的
FragmentCacheQuery
; - RowCacheQuery.php:数据库行缓存Query文件,针对数据库行缓存的抽象类,继承底层框架的
FragmentCacheQuery
; - RowQuery.php:数据库行Query文件,针对数据库行处理不需要缓存的抽象类;
- RowQueryFindable.php:
- SearchQuery.php:
- VectorQuery.php:关系缓存Query文件,针对关系缓存的抽象类
8. Strategy 文件夹
策略文件夹,存放策略相关文件
- MediaTypes:媒体类型文件夹
- JsonapiStrategy.php:JSON API媒体类型策略文件。该文件主要处理以下事情:
- 验证媒体类型:针对请求头和实体头;
- 对json格式原始数据解码
- JsonapiStrategy.php:JSON API媒体类型策略文件。该文件主要处理以下事情:
9. View 文件夹
视图层文件夹,存放视图相关文件
- EmptyView.php:接口为空视图文件,继承底层框架的
EmptyView
; - ErrorView.php:接口错误视图文件;
- JsonApiResponseFormatter.php:设置响应输出为JSON API格式文件;
- JsonApiTrait.php:JSON API格式性状文件。该文件主要处理以下事情:
- 格式化links
- 格式化mate
- 设置分页、links、mate
- 格式化为JSON API格式
10. config.php
初始化全站配置文件(常量)
11. errorConfig.php
初始化错误配置文件(常量)
/**
* 未定义错误
*/
define('ERROR_NOT_DEFINED', 0);
12. errorDesciptionConfig.php
初始化错误描述配置文件,返回错误配置描述(数组)
return array(
ERROR_NOT_DEFINED=>
array(
'id'=>ERROR_NOT_DEFINED,
'link'=>'',
'status'=>500,
'code'=>ERROR_NOT_DEFINED,
'title'=>'error not defined',
'detail'=>'error not defined',
'source'=>array(),
'meta'=>array()
),
);
13. Framework.php
框架文件,底层框架和marmot框架通过IFramework
解耦。该文件主要处理以下事情:
- 初始化错误配置文件(常量)
- 初始化错误描述配置文件(数组)
- 初始化全站配置文件(常量)
14. MarmotCore.php
核心文件,继承底层框架的MarmotCore
。该文件主要处理以下事情:
- 初始化marmot框架文件
- 初始化mysql数据库
- 初始化mongo数据库
- 初始化memcached缓存