更简单

整个框架核心目录文件150KB,足够的简单,整个框架的加载流程简单明了,层级划分清晰。并为你开发API提供了友善的辅助。

更快速

追求闪电般的速度,只加载你需要的,输出一个"hello world"只需要1ms左右。

更友善

完全的解耦了前后端,融合了流行的VUE作为前段。集成了单元测试,支持客户端脚本模式,并提供了接口文档和接口mock支持

功能特点

微单体路由

面向SOA和微服务架构大行其道的今天,有很多的团队都在向服务化迈进,但是服务化过程中很多问题的复杂度都是指数级的增长,例如分布式的事务,服务部署,跨服务问题追踪等等。这导致对于小的团队从单体架构走向服务架构难免困难重重,所以有人提出来了微单体架构,按照我的理解就是在一个单体架构的SOA过程,我们把微服务中的的各个服务还是以模块的方式放在同一个单体中。

MVC转变为MCL

传统的MVC模式包含model-view-controller层,绝大多时候我们会把业务逻辑写到controller层或model层,但是慢慢的我们会发现代码难以阅读、维护、扩展,所以我在这里强制增加了一个logics层。至于,逻辑层里怎么写代码怎么,完全由你自己定义,你可以在里面实现一个工具类,你也可以在里面再新建子文件夹并在里面构建你的业务逻辑代码,你甚至可以实现一个基于责任连模式的网关。

用户自定义

UserDefinedCase会在框架加载到路由机制之前被执行,这样我们就可以灵活的实现一些自定义的处理了。

集成VUE

完全的前后端分离,数据双向绑定,模块化等等的大势所趋。这里我把我自己开源的vue前端项目结构easy-vue移植到了这个项目里,作为视图层。我们把前端的源码文件都放在frontend目录里,你也可以自己定义。

服务容器

服务容器听起来很浮,按我的理解简单来说就是提供一个第三方的实体,我们把业务逻辑需要使用的类或实例注入到这个第三方实体类中,当需要获取类的实例时我们直接通过这个第三方实体类获取。

API友好

框架中所有的异常输出和控制器输出都是json格式,因为我认为在前后端完全分离的今天,这是很友善的,目前我们不需要再去考虑别的东西。请求对象支持请求参数校验,框架默认提供HTTP友好的输出。

Git钩子

配合使用php_codesniffer,在代码提交前对代码的编码格式进行强制验证。采用ruanyifeng的commit msg规范,对commit msg进行格式验证,增强git log可读性和便于后期查错和统计log等。

Api Docs

通常我们写完一个接口后,接口文档是一个问题,我们这里使用Api Blueprint协议完成对接口文档的书写和mock,同时我们配合使用Swagger通过接口文档实现对接口的实时访问。Api Blueprint接口描述协议选取的工具是snowboard。

极速安装

composer create-project tigerb/easy-php easy --prefer-dist && cd easy