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

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格式原始数据解码

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缓存