若是一个框架能用不多的业务代码实现特别多的功能,那么其实就是这个框架内置了大量的惯例,当这些惯例不符合项目预期的时候,如何添加代码精确地改变对应的惯例,而不搞砸其余部分,就会变的很难。经典的例子是各种CMF,drupal, wordpress,比起框架来已经更接近应用了。php
若是一个框架能实现的功能不少,也很容易修改或定义其中的功能细节,那么这个框架每每须要写很是多的业务代码来填充起这些容许自定义的部分(由于若是这些部分有预设值,这个框架就落回到上一个类型)。通常而言的“重”框架每每是这种类型。git
而一个框架若是要写的业务代码很少,也仍是可以轻松的改变其中的功能,那么这个框架每每没法内置不少功能,须要开发者本身动手拼积木。github
以上是我总结的框架的三角原理,业务代码(少),内置功能(多)和内部掌控(易)三者不可得兼。框架
做为开发者,我选择放弃内置功能的数量,由于我以为这是惟一能够由外部弥补的,不属于一个框架自己素质。模块化
啰嗦了这么多,这是一个以PSR为核心的,自带DI机制的微框架,其余一切皆可选配。若是你喜欢Slim,但又嫌弃他自身不模块化无法换轮子,DI不正宗搞service locator反模式,不妨了解一下。若是你还不了解Slim,还不知道为啥那么多老司机上手就是Slim,但又懒得四处安利Slim这么小的框架究竟好在哪里,那也能够和Slim一块儿看下。wordpress
http://litphp.github.io/blog/... (全英文预警)blog