若是一個框架能用不多的業務代碼實現特別多的功能,那麼其實就是這個框架內置了大量的慣例,當這些慣例不符合項目預期的時候,如何添加代碼精確地改變對應的慣例,而不搞砸其餘部分,就會變的很難。經典的例子是各種CMF,drupal, wordpress,比起框架來已經更接近應用了。php
若是一個框架能實現的功能不少,也很容易修改或定義其中的功能細節,那麼這個框架每每須要寫很是多的業務代碼來填充起這些容許自定義的部分(由於若是這些部分有預設值,這個框架就落回到上一個類型)。通常而言的「重」框架每每是這種類型。git
而一個框架若是要寫的業務代碼很少,也仍是可以輕鬆的改變其中的功能,那麼這個框架每每沒法內置不少功能,須要開發者本身動手拼積木。github
以上是我總結的框架的三角原理,業務代碼(少),內置功能(多)和內部掌控(易)三者不可得兼。框架
做爲開發者,我選擇放棄內置功能的數量,由於我以爲這是惟一能夠由外部彌補的,不屬於一個框架自己素質。模塊化
囉嗦了這麼多,這是一個以PSR爲核心的,自帶DI機制的微框架,其餘一切皆可選配。若是你喜歡Slim,但又嫌棄他自身不模塊化無法換輪子,DI不正宗搞service locator反模式,不妨瞭解一下。若是你還不瞭解Slim,還不知道爲啥那麼多老司機上手就是Slim,但又懶得四處安利Slim這麼小的框架究竟好在哪裏,那也能夠和Slim一塊兒看下。wordpress
http://litphp.github.io/blog/... (全英文預警)blog